ホームページ >データベース >mysql チュートリアル >SQL INSERT ステートメントの結果が ORA-01861: リテラルがフォーマット文字列と一致しないのはなぜですか?
ORA-01861: リテラルがフォーマット文字列と一致しません
SQL で、エラー「ORA-01861: リテラルがフォーマット文字列と一致しません」 " は、データ値をテーブルに挿入するときに発生し、リテラルの形式が指定された形式文字列と一致しません。このエラーは、特定の形式で日付値を挿入しようとしたときによく発生します。
次の INSERT ステートメントを考えてみましょう:
INSERT INTO Patient (PatientNo, PatientFirstName, PatientLastName, PatientStreetAddress, PatientTown, PatientCounty, PatientPostcode, DOB, Gender, PatientHomeTelephoneNumber, PatientMobileTelephoneNumber) VALUES (121, 'Miles', 'Malone', '64 Zoo Lane', 'Clapham', 'United Kingdom', 'SW4 9LP', '1989-12-09', 'M', 02086950291, 07498635200);
このステートメントでは、DOB 列が日付として定義されています。ただし、リテラル「1989-12-09」は、SQL 日付として認識される形式ではありません。この問題を解決するには、TO_DATE() 関数を使用して文字列リテラルを正しい形式に変換します。
INSERT INTO Patient (PatientNo, PatientFirstName, PatientLastName, PatientStreetAddress, PatientTown, PatientCounty, PatientPostcode, DOB, Gender, PatientHomeTelephoneNumber, PatientMobileTelephoneNumber) VALUES (121, 'Miles', 'Malone', '64 Zoo Lane', 'Clapham', 'United Kingdom', 'SW4 9LP', TO_DATE('1989-12-09', 'YYYY-MM-DD'), 'M', 02086950291, 07498635200);
形式文字列 'YYYY-MM-DD' を指定すると、SQL はリテラル '1989- を認識します。 12-09' を年-月-日形式の日付として扱い、DOB 列に正常に挿入します。
以上がSQL INSERT ステートメントの結果が ORA-01861: リテラルがフォーマット文字列と一致しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。