Hoe een ORACLE-opgeslagen procedure uit te voeren?

Ik gebruik Oracle 10G Express-editie. Het heeft een mooie UI voor DB-ontwikkelaars. Maar ik ben geconfronteerd met een aantal problemen die opgeslagen procedures uitvoeren.

Procedure:

create or replace procedure temp_proc is
begin
  DBMS_OUTPUT.PUT_LINE('Test');
end

het is succesvol gemaakt. Maar wanneer ik execute:

execute temp_proc;

Het toont ORA-00900: ongeldige SQL-instructie

Dus help hier nodig


Antwoord 1, Autoriteit 100%

ExecuteIs SQL * PLUS SYNTAX .. Probeer uw oproep in BEGIN in te wikkelen .. Einde zoals deze:

begin 
    temp_proc;
end;

(Hoewel Jeffrey zegt dat dit niet werkt in Apex .. Maar je probeert dit te laten rennen in Sqldeveloper .. Probeer het menu ‘Run’ daar.)


Antwoord 2, Autoriteit 3%

Oracle 10G Express Edition-schepen met Oracle Application Express (Apex) ingebouwd. U voert dit in het venster SQL-opdrachten, dat geen ondersteuning biedt aan SQL * PLUS SYNTAX.

Dat maakt niet uit, omdat (zoals u hebt ontdekt) het begin … Eindsyntaxis werkt in Apex.


Antwoord 3, Autoriteit 2%

Beide ‘is’ en ‘AS’ zijn geldige syntaxis. Uitvoer is standaard uitgeschakeld . Probeer een procedure die ook de output mogelijk maakt …

create or replace procedure temp_proc is
begin
  DBMS_OUTPUT.ENABLE(1000000);
  DBMS_OUTPUT.PUT_LINE('Test');
end;

… en bel het in een PLSQL-blok …

begin
  temp_proc;
end;

… omdat SQL niet-procedureel is.


Antwoord 4

Ik gebruik orakel 12 en het vertelt me dat als je de procedure moet aanroepen, het trefwoord callmoet gebruiken.
In jouw geval zou het moeten zijn:

begin
  call temp_proc;
end;

Antwoord 5

Heb je geprobeerd de syntaxis op deze manier te corrigeren?:

create or replace procedure temp_proc AS
begin
  DBMS_OUTPUT.PUT_LINE('Test');
end;

Other episodes