0
良い日。私が持っている機能:Oracle DB:プロシージャ内で関数結果を変数に格納する方法
create function get_n(search tt.pp%type)
return number
is rc number;
begin
select count(*)
into rc
from tt
where tt.pp=search;
return (rc);
end;
/
をして
variable qwe number;
begin
select get_n('sample')
into :qwe
from dual;
end;
print qwe;
だから、それが正常に動作していますように私はなり得ることができます。しかし、部品によって:私は他の実行時にprint
と行をすることはできません(PLS-00103:シンボル "PRINT"が発生しました...)。それは本当に変です。
私は無名ブロック内の機能に起因し、それを印刷取得しよう:
declare
qwe number;
begin
select get_n('sample')
into :qwe
from dual;
dbms_output.put_line(qwe);
exception
when others
then dbms_output.put_line(sqlerrm);
end;
/
そして、それは何を印刷していません。どうして?
をそしてうん、私のことができちょうど ':='関数の値ですが、なぜこれは機能しませんか? – Evgeniy175
はるかにシンプルな '' qwe:= get_n( 'sample') 'を使って何が問題になったのですか? –
@a_horse_with_no_nameはすべてこの点で素晴らしいですが、この場合に何が間違っているか理解したいだけです – Evgeniy175