C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: Oracle Date型のバインド変数の指定方法


(過去ログ 62 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■35823 / inTopicNo.1)  Oracle Date型のバインド変数の指定方法
  
□投稿者/ やじゅ (997回)-(2009/05/14(Thu) 16:40:01)
やじゅ さんの Web サイト

分類:[データベース全般] 

■環境
データベース Oracle 10.2.0

■質問
SI Object Browserや、VisualStudio等で、ストアドのデバッグをする際に
バインド変数がDate型のものに対して、日時の引渡し方法が分かりません。
検索しても見つけられなかったので、ご教示ください。

バインド変数をVARCHAR2型にして、TO_DATE(:iTARGET_YMD,'YYYY/MM/DD HH24:MI:SS')
とすれば出来るのですが、DATE型で渡したいです。

2009/05/12 10:30:00

#2009/05/12 10:30:00# と#を付けるとエラー、ORA-01841: (周)年は-4713と+9999の間で指定してください。

※プログラム上での渡し方は分かります、ツールからの渡し方が分からない。
引用返信 編集キー/
■35825 / inTopicNo.2)  Re[1]: Oracle Date型のバインド変数の指定方法
□投稿者/ 魔界の仮面弁士 (1065回)-(2009/05/14(Thu) 17:36:40)
2009/05/14(Thu) 17:38:11 編集(投稿者)

No35823 (やじゅ さん) に返信
> ■環境
> データベース Oracle 10.2.0
> ■質問
> SI Object Browserや、VisualStudio等で、ストアドのデバッグをする際に
> バインド変数がDate型のものに対して、日時の引渡し方法が分かりません。

select * from v$nls_parameters を実行して、
NLS_DATE_FORMAT の値を確認してみてください。


もし、それが時刻部を含めた表記になっていないのであれば、
システム環境変数 NLS_DATE_FORMAT に「YYYY-MM-DD HH24:MI:SS」をセットしてから
Visual Studio を起動し、[Oracle エクスプローラ]からストアドを実行してみてください。
これで、『2009-05-14 17:07:01』の形式のパラメータも認識されるかと思います。

なお、当方の Oracle Developer Tools のバージョンは 10.2.0.2.20 です。


# SI Object Browser は使っていないので分かりません。
引用返信 編集キー/
■35826 / inTopicNo.3)  Re[1]: Oracle Date型のバインド変数の指定方法
□投稿者/ ぱると (16回)-(2009/05/14(Thu) 17:37:47)
VisualStudioからデバッグする場合、バインド変数に設定する値を(VBまたはC#の)Date型にすれば良いんじゃないでしょうか?

引用返信 編集キー/
■35827 / inTopicNo.4)  Re[2]: Oracle Date型のバインド変数の指定方法
□投稿者/ ぱると (17回)-(2009/05/14(Thu) 17:39:56)
>※プログラム上での渡し方は分かります、ツールからの渡し方が分からない。

あ…見てなかったです。
引用返信 編集キー/
■35828 / inTopicNo.5)  Re[1]: Oracle Date型のバインド変数の指定方法
□投稿者/ aetos (140回)-(2009/05/14(Thu) 17:40:23)
No35823 (やじゅ さん) に返信
> ■環境
> データベース Oracle 10.2.0
>
> ■質問
> SI Object Browserや、VisualStudio等で、ストアドのデバッグをする際に
> バインド変数がDate型のものに対して、日時の引渡し方法が分かりません。
> 検索しても見つけられなかったので、ご教示ください。

VS はわかりませんが、Object Browser は、ツールから入力する変数の型はすべて VARCHAR2 になるという仕様のはず。
引用返信 編集キー/
■35885 / inTopicNo.6)  Re[2]: Oracle Date型のバインド変数の指定方法
□投稿者/ やじゅ (998回)-(2009/05/15(Fri) 10:23:03)
やじゅ さんの Web サイト
魔界の仮面弁士さん、ぱるとさん、aetos さん
回答ありがとうございます。

やっとこさ確認すること出来たので、報告します。

No35825 (魔界の仮面弁士 さん) に返信
> select * from v$nls_parameters を実行して、
> NLS_DATE_FORMAT の値を確認してみてください。
>
> もし、それが時刻部を含めた表記になっていないのであれば、
> システム環境変数 NLS_DATE_FORMAT に「YYYY-MM-DD HH24:MI:SS」をセットしてから
> Visual Studio を起動し、[Oracle エクスプローラ]からストアドを実行してみてください。

まさにこれでして、NLS_DATE_FORMAT の値が「RR-MM-DD」となっておりました。
このNLS_DATE_FORMATの変更方法が理解できてなくて、ネットで検索した

alter session set NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss';

で設定して、出来ないなー出来ないなーと悩んでました。そりゃセッション単位ですもんね(^^;
システム全体での変更にすればいいのですが、開発途中段階で切替えるわけにもいかず…

とりあえず、自分の環境化だけ動作するか確かめるため、下記サイトを参考に
http://otn.oracle.co.jp/forum/thread.jspa?threadID=8001119
レジストリエディタで[HKEY_LOCAL_MACHINE]-[SOFTWARE]-[ORACLE]-[HOME0]の下に
[NLS_DATE_FORMAT]を追加して、値をyyyy/mm/dd hh24:mi:ssに設定をしました。

これによって、「Visual Studio」 と 「SI Object Browser」 で日時パラメータが
認識されるようになりました。

ありがとうございましたm(_ _)m
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -