0

- 正常に動作します -

SELECT COLUMNS 
  FROM TABLE 
 WHERE
    AND RECORDDATE = TRUNC((TO_TIMESTAMP('14/12/2012 12:00:00', 
                                         'DD/MM/YYYY HH24:MI:SS')
                            ))

しかし、変数を作成HISTDATEして入力しようとすると

TO_TIMESTAMP('14/12/2012 12:00:00', 'DD/MM/YYYY HH24:MI:SS')

実行時に変数に入れると、「expected TIMESTAMP got NUMBER」というエラーが表示されます

SELECT COLUMNS 
  FROM TABLE 
 WHERE RECORDDATE = TRUNC(:HISTDATE) 

同じ値を入力しても動作しない

4

2 に答える 2

0

私が行ったテストによると、クエリには何も問題はありませんでした。同じクエリ

SELECT COLUMNS 
  FROM TABLE 
 WHERE RECORDDATE = TRUNC(:HISTDATE) 

プロシージャの一部としては正常に機能しましたが、直接の SQL クエリとして正常に実行できませんでした。SQLクエリとプロシージャがOracleでコンパイルされているためかもしれません

于 2013-08-27T06:09:17.367 に答える
0

可能であれば、次のようにします。

クエリ:

SELECT COLUMNS 
  FROM TABLE 
 WHERE
    AND RECORDDATE = TRUNC((TO_TIMESTAMP(:HISTDATE, 
                                         'DD/MM/YYYY HH24:MI:SS')
                            ))
;

:HISTDATE の入力
14/12/2012 12:00:00

于 2013-08-23T13:16:24.687 に答える