date タイプを含むデータをinsert するとエラーが出ます。
たとえば、
CREATE TABLE plsql101_purchase (
product_name VARCHAR2(25),
product_price NUMBER(4,2),
purchase_date DATE
)
;
で表を作り、

INSERT INTO plsql101_purchase VALUES
('Product Name 1', 1, '5-NOV-00');
を実行すると、
”ORA-01858: 数値を指定する箇所に文字が指定されています”
というエラーが'5-NOV-00'の下に星マークが出て表示されます。

自分のマシンに大学から渡された生徒用のOracle8iをWindows2000にインストールして教本に載っていた上のような文を実行したところ、エラーが発生しました。大学のマシンでは、うまくいきました。

何か設定するんだと思いますが、その方法がまったく分かりません。どうしたらエラーをなくすことができるでしょうか?

A 回答 (1件)

Fireworksさん こんちは



ご自宅のORACLEの NLS_DATE_FORMAT はどうなっていますか?
初期化パラメタに設定されているはずですので確認してみてください。
'5-NOV-00'での形式での日付データを挿入できないのであれば、なにか別の形式になっている可能性があります。

「初期化ファイルの修正後ORACLE再起動」か、
SQL*Plusより、
ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-YY';
で変更できると思います。
    • good
    • 0
この回答へのお礼

chaffさんのアドバイス通り
ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-YY';
を実行したところ、ちゃんとinsertできました。
かなり嬉しいです。

しかし残念ですが自分の初期化ファイルを見つけることができませんでした。
d:\oracle\admin\???\pfile にあるファイルがそうかなと思いましたが、NLS_DATE_FORMATの記述はありませんでした。

何はともあれ問題は解決しましたので、感謝しています。ありがとうございました。

お礼日時:2002/03/10 18:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す


人気Q&Aランキング

おすすめ情報