質問
ORA-01858例外があります。 NLSの設定と日付によるものだと思います。
declare
currentDate DATE := sysdate;
queryString VARCHAR2(300) := '... where blablabla = :bind_timestamp ...';
sql_cursor integer;
begin
sql_cursor := dbms_sql.open_cursor;
dbms_sql.parse(sql_cursor, queryString, dbms_sql.native);
dbms_sql.bind_variable(sql_cursor, ':bind_timestamp', currentDate);
rowsProcessed := dbms_sql.execute(sql_cursor);
dbms_sql.close_cursor(sql_cursor);
end;
は dbms_sql.bind_variable(sql_cursor, ':bind_timestamp', currentDate);
NLS依存?
つまり、一部のNLS設定では正常に機能し、他のNLS設定が失敗しますか?
解決
日付を扱う場合、独自のフォーマット文字列を提供する場合、NLS設定は関連しません。
WHERE arrival=TO_DATE('2011-09-05', 'yyyy-mm-dd')
私の推測では、あなたは自動タイプのジャグリングに依存していると思います。つまり、あなたは文字列を提供し、必要に応じてオラクルをキャストさせています。
WHERE arrival='05/09/2011'
その場合、OracleはNLS設定で指定されているデフォルト形式を使用します。
アップデート: ところで、 ORA-01858コード 意味:
数字が予想されている場所で見つかった非数字の文字
所属していません StackOverflow