2017-04-24 15 views
0

方法はありますか?入力として日付を取得し、PL-SQLプロシージャで実行する必要があります。Oracleの日付形式の問題

ref_d := '03042017'; 

select count(*) into count_num 
from EGB_RDMS_RULE 
where ref_d = to_date('03042017','DDMMYYYY'); -- This statement works 

select count(*) into count_num2 
from EGB_RDMS_RULE 
where ref_d = to_date(ref_d,'DDMMYYYY'); -- This doesnt work 

2番目のステートメントが機能しない理由を説明できますか?

+3

これらのクエリは異なることを行っています。コードで何をしたいですか? 「これは機能しません」とはどういう意味ですか? –

+0

私は2番目のコードを実行したい..私は文字列としての日付です変数入力を持って..私はそれをテーブル内の値をフィルタに使用したい.. – thealchemist

答えて

3

私は疑わしいref_dはあなたのテーブルの列です。

ローカル変数には常に、それらが列ではないことを示す何かが付いています。だから、私はあなたがこのようなものを望んでいると思う:

v_ref_d := '03042017'; 

select count(*) into count_num2 
from EGB_RDMS_RULE 
where ref_d = to_date(v_ref_d, 'DDMMYYYY'); 
2

関数の外でref_dを呼び出してみてください!これは動作する可能性があります

関連する問題