01. maj 2014 - 11:02Der er
4 kommentarer og 1 løsning
PLSQL LOOP
Hejsa!
Er det muligt at udføre et simplet sql statemenet i et loop med et wait statement f.eks 2 min og få outputtet ud som normalt i sql developer jeg forsøger følgende DECLARE i number(2); BEGIN FOR I IN 1 ..20 LOOP
select * from _properties where value = 'EXCLUSIVE'; --her ville jeg gerne have et sleep statement
END LOOP; END; /
men den brokker sig med følgende :
ORA-06550: linje 4, kolonne 5: PLS-00428: an INTO clause is expected in this SELECT statement 06550. 00000 - "line %s, column %s:\n%s" *Cause: Usually a PL/SQL compilation error. *Action:
Jeg kunne sagtens sætte det op i et shell script med sqlplus... men nu er det lige dette her jeg sidder og prøver at blive klogere på :-)
Hej sa jeg kan ikke rigtig for sleep til ast virke som jeg gerne ville. Den venter godt nok, men der kommer ikke output hvert 5 sec som var min intension: Der går de der 20 * 2 sec. og så kommer alt output ud.
min kode DECLARE i NUMBER(2); BEGIN FOR i IN 1..20 loop FOR dept_rec IN ( select * from i2db_properties where value = 'EXCLUSIVE') LOOP dbms_output.put_line( 'resultat: ' || dept_rec.key || ' ' || i ); SYS.DBMS_LOCK.SLEEP(5); END LOOP;
Dette skulle have været en kommentar til tidligere svar sorry
Synes godt om
Slettet bruger
02. maj 2014 - 11:34#5
Et PL/SQL program afleverer først output, når det er afsluttet i sin helhed.
DBMS_OUPUT.PUT_LINE gemmer data i en buffer. Når programmet slutter, henter sql-plus data fra bufferen og skriver det ud.
Hvis du skal have output løbende, må du altså lave et script, som kan kalde sig selv. Eller du må pipe data over i en anden session med DBMS_PIPE. Eller du kan skrive til en tabel og læse disse data fra en session.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.