私は2つの値を返すカーソルを持っています:1つは私が使用する(したがって、out
変数に割り当てます)、もう1つはROWNUMを動作させるために返されたものです。このPL/SQLプロシージャはなぜ機能しませんか?
カーソルをクエリとして実行すると、期待どおりに動作します。しかし、手順を実行すると、out
変数が空になります。私のアプローチは何とかサポートされていないのですか?つまり、2つの値を返しますが、そのうちの1つだけを返します。ここで
は私の手順のコードである:(クエリ自体にあまり掘り下げないでくださいそれは動作しますが、私はそれは少し醜いですが、それは動作します知っているそれは私が最後から2番目のを返すために見つけた唯一の方法でした。行)
procedure retorna_infos_tabela_164(i_nip in varchar,
o_CODSDPANTERIOR out number) is
cursor c_tabela_164 is
select *
from(
select CODSDP,ROWNUM rn
from
(
select NRONIP,CODTIPOMOV,CODSDP
from TB164_HISTORICOMOVIMENTACOES
where NRONIP = i_nip and
CODTIPOMOV='S1'
order by DTHMOV desc
)
)
where rn=2;
v_temp_nr number;
begin
open c_tabela_164;
fetch c_tabela_164 into o_CODSDPANTERIOR,v_temp_nr;
close c_tabela_164;
end retorna_infos_tabela_164;
EDIT私は、この手順を実行しようとした方法では動作しませんでしたdbms_output.put_line(o_CODSDPANTERIOR)
でいました。私はちょっとgoogledと私はTO_CHAR()
私のvar最初にして、それを出力する必要があります見た。どちらもうまくいきませんでした。
クエリとしてカーソルを実行できますか? (sybaseではありません) –
@aFあなたは 'select'キーワードの前にその部分を切り捨てると実行できます。 :) – GolezTrol
さて、私はカーソルが*クエリだと思った。 SQLランナーでCtrl + Cを押してからctrl + vを押すだけです。 –