Natknąłem się na te oświadczenia, które mają być uruchamiane w Oracle, jednak nie jestem pewien, jak te oświadczenia powinny być uruchamiane. Próbowałem uruchomić je jako SQL, ale nie działa.

variable output1 NUMBER;
variable output2 VARCHAR2(100);

exec rp_orader_closure_pxkg.rp_exaec_close_SILvl_WKO('aaa',
                                                     '1',
                                                     '10aaa001a6414339',
                                                     :output1, :output2);
2
Oh Chin Boon 30 maj 2011, 21:00
2
Co oznacza „nie działa”? Jakieś wiadomości?
 – 
DCookie
30 maj 2011, 21:02

3 odpowiedzi

Najlepsza odpowiedź

Nie jestem pewien, czy wszystkie polecenia SQLPlus działają w programie SQL Developer. Z pewnością możesz to zrobić w anonimowym bloku:

DECLARE
    output1 NUMBER;
    output2 VARCHAR2(100);
BEGIN
    rp_orader_closure_pxkg.rp_exaec_close_SILvl_WKO('aaa', '1', 
        '10aaa001a6414339', output1, output2);
END;
4
eaolson 30 maj 2011, 21:05

U mnie działa dobrze, SQL Developer v3.0.04. W oknie skryptu wpisuję:

create or replace package p as
procedure prc (p1 in varchar2, p2 in out varchar2);
end;
/
create or replace package body p as
procedure prc (p1 in varchar2, p2 in out varchar2) is
begin
  p2 := p1;
end prc;
end;
/
variable output2 VARCHAR2(100);

exec p.prc('aaa',:output2);

print output2;

W oknie wyjściowym skryptu:

PACKAGE p compiled
PACKAGE BODY p compiled
anonymous block completed
OUTPUT2
---
aaa

Może czegoś mi brakuje?

3
DCookie 30 maj 2011, 21:14

Po prostu zgub pierwsze dwie linie i wykonaj tylko linię z exec na początku. Programista SQL poprosi Cię o wartości zmiennych. Po prostu zostaw je NULL, ponieważ są to parametry wyjściowe.

1
Daniel Hilgarth 30 maj 2011, 21:05