• ベストアンサー

DATE型にNULLをセットするには?

Oracle初心者です。 Oracle9.2iのDATE型にNULLをセットする方法を教えてください。 UPDATE及びPL/SQLでセットする方法 ちなみに.net2005 VBの言語で、DATE型にNULLをセット方法も同時に教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • gape
  • ベストアンサー率45% (15/33)
回答No.1

以下のフォーラムの情報で参考になりませんか? http://otn.oracle.co.jp/cgi-bin/non/msgview_r.cgi?communityid=otn-901234&bbsid=1&no=22821&view=8

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • MZ-80B
  • ベストアンサー率56% (46/81)
回答No.2

NULLに関して #1 で不足してそうな点を補うと 「PL/SQL マニュアルより」 動的SQL へのNULL の引渡しリテラルNULL は、USING 句の中では使用できません。 この制限を回避するには、キーワードNULL を未初期化の変数で置き換えます。 DECLARE a_null CHAR(1); -- set to NULL automatically at run time BEGIN EXECUTE IMMEDIATE 'UPDATE emp SET comm = :x' USING a_null; END; /

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Date型にNULLをセットしたい VB2008+SQLServer2008

    よろしくお願いいたします。 VB2008Express+SQLServer2008Expressを勉強しております。 Date型にNULLをセットする方法についてお聞きします。 定義ではDate型で「NULLを許容」にしております。 http://oshiete1.goo.ne.jp/qa1047427.html?ans_count_asc=20 この質問を参考に、 INSERT INTO tbl_Main(dteDate) VALUES (DBNull.Value) このようにしてみましたが、 「不適切な構文があります」というエラーが起きます。 空文字「"''"」にすると「1900/01/01」がセットされてしまったり、 「vbTab」に変えてみたりとやってみましたが、うまく行きません。 お時間がありましたら、アドバイスよろしくお願いいたします。

  • Null値を入れるには?

    初歩的な質問です! SQLでデータの更新をかけたいんですが、データがNull値でもUPDATEできるようにしたいんです。 DB側でNull値の許可をしていたら問題なく動くと思ったんですが…現在Access2000を使用しています。 そこで、VBAを使ってSQLでUPDATEをかけようとしているんですが、Null値を受け取ってくれません。 受け取ってくれないため、操作ができなくなってしまいました(/_;) そこで、Null値のUPDATEの方法を教えてください。 よろしくお願いします。

  • updateしてもSQLを終了すると元に戻る

    Oracle_9→access2002 で外注開発されたシステムを利用しています さて、Oracle、SQL_Plusの[update TABLE1 SET FIELD1 = 'X' WHERE FIELD1 IS NULL]等でデータ更新後、[select 列名リスト FROM TABLE1 WHERE 検索条件]で確認すると確かに更新されているが、SQLを終了後、再起動すると元に戻ってしまいますが、どんな原因が考えられますか?update実行後に確定操作等あるのですか? Oracleはまったく初心者ですがお願いします

  • oracleシルバー、ゴールドを受けたいのですが・・

    oracleシルバーを受けようと思っています。 しかし、oracleシルバーの中でもなんか、色々あるみたいで、 ・オラクル シルバー フェロー ・オラクルマスター シルバー(オラクル9iデータベース) ・オラクルマスター シルバー(オラクル9i PL/SQL) ・オラクルマスター シルバー(オラクル 9i アプリケーションサーバー) があるようです。しかし、初心者なのでどれをとればいいのかとかが良くわかりません。。。そこで質問ですが、 1.oracleシルバーのどれを取得しても、「oracleシルバー取得した!」と宣言できるのでしょうか? 2.最終的にゴールドを、短時間の勉強で取得するには、まずはシルバーのどれを取得すればいいでしょうか?

  • IS NULL

    いつもお世話になっています。 PL/SQLでストアドを作成中なのですが、 あるUPDATE分のWHERE句の条件として“IS NULL”を使用したいのですが、監督者から “IS NULL”はNGという指示が出てしまい困っています。 (理由はNULLは索引の対照外だからということです。) 以前、“IS NOT NULL”の代用として、“項目名 ≧ 0”が使えることを学んだのですが、“IS NULL”にも同じように代用できる条件の記述方法はありますか? “IS NOT NULL”が“項目名 ≧ 0”なら “IS NULL”は“項目名 < 0”というのは無謀でしょうか?

  • DATE型の省略値について

    環境:Oracle9i 9.2.0 言語:VB6 日付型の項目に秒まで設定しているデータがあります。 そのデータがたまたま0時ぴったりに登録されました。 「2006/04/06 00:00:00」の状態で登録されましたが、その後VBアプリから上記項目を取得しようとすると「2006/04/06」のみで取得されてしまいます。 ある人に確認すると内部的に省略されてるからだということです。 VBアプリからの取得時に「2006/04/06 00:00:00」で取得するようにできますでしょうか? 上記問題はデータをCSVでバックアップする為の目的で発生しており、CSV出力機能はVB6で作成しています。 内容はユーザ所有テーブル名称を全て読込み、その中でSQL文を作成し実行しています。その為、TO_CHAR関数などをSQLに明示的に設定はできればしたくないです。 Oracleの設定などで省略しないように変更ができる方法などありませんでしょうか? どなたかアドバイスお願い致します。

  • 行ロックをかけたい

    DB環境:Oracle9i 9.2.0 言語 :VB6.0 ミドルウェア:oo4o VB初心者です。 VBアプリで参照したデータに行ロックをかけて次に参照した場合はエラーメッセージを出したいです。 その為にSELECT文で「FOR UPDATE NOWAIT」をかけるようにしました。すると次のコードで落ちてしまいます。 Set recSet = OraDatabase.CreateDynaset(ps_SQL, ORADYN_READONLY) 'レコードセットオープン エラーメッセージ「エラーコード54、リソースビジーです~」 とりあえずはエラーコードを返すようにできればOKだと思うのですが。。 「FOR UPDATE NOWAIT」を記述する場合のVBの記述方法やVBのロック管理の方法などいい方法がございましたらアドバイスお願い致します。

  • PL/SQLでフェッチでNULLの項目について

    PL/SQLで質問があります。 たとえば複数レコードがあり、フェッチで1件ずつ処理する場合、 1件目で値あり、2件目NULLの場合、2件目のフェッチでINTOした変数はNULLが保証されるでしょうか? それとも1件目の値が残ってしまうでしょうか? サンプルでフェッチのループ内で変数の初期化をしない場合でも、NULLで上書きされているようにみえますが、PL/SQLではありませんが以前ProCでNULLの場合は前のレコードの値が残ってしまったため、PL/SQLは上書きが保証されるのかが気になっています(どちらもオラクルなので似た仕様になるのではと懸念)。 グーグル先生に聞いてみましたが、明記されているサイトがみつからず・・・。 ProCはインディケータでNULLを判定するので値の変数にはNULLの場合、何もしないだけでPL/SQLでは特に初期化を気にすることはないのかもしれませんが、仕様として記述されている箇所が見つからないためご存知の方がいらっしゃいましたら教えて頂けると助かります。 具体的には仕事でそういうコーディングになっている箇所があり、直すべきかそのままで問題ないかを検討しています。 現段階ではあまり修正できる状況ではないため、問題にならなければそのままとしたいと考えています。 サンプルの実行結果上は問題なさそうなのですが、できればプラスアルファの情報が欲しく。

  • 時刻型にNULLでセットしたい

    アクセスのデータベースのフィールドを日付/時刻型にしております。aspでINSERTを使用しています。テキスト型でしたら、NULLの許可がありますが、日付/時刻型にはそのような項目がありません。時刻型にNULLでセットしたいのですが、その方法がわかりません。いろいろ調べましたが…。ご伝授の程、よろしくお願い致します。 例. フィールドaにhtmlから引きわたったTimesをセットする。 ※Timesには空白("")がRequestされています。  テーブル名db_1 書き込み(##を使用していません) insert INTO db_1(a)VALUES ('"& Request("Times") &"')" 更新 update db_1 set a=#"& Request ("times") & "# where id = "&Request ("id")&"")

  • CSVデータの取り込み

    開発環境 言語 VB6.0 DB  ACCESS 一つ目は、CSVデータをACCESSに保存したいのですがどうしたらいいですか? 開発環境 言語 VB6.0 DB  ORACLE9i 二つ目は、CSVデータをORACLE9iに保存したいのですがどうしたいいですか? どうかよろしくお願いします。