/ / Błąd podczas próby utworzenia procedury, dlaczego tak uważasz? - oracle, plsql, oracle-apex, oracle-apex-5

Błąd podczas próby utworzenia procedury, dlaczego tak uważasz? - oracle, plsql, oracle-apex, oracle-apex-5

wszystko.

Próbowałem już stworzyć procedurę w Oracle Apex 5. Jednak pojawia się ten problem "ORA-24344: sukces z błędem kompilacji". Zakładam, że jest to błąd składni. Jak myślisz, co to jest? * Generate_password to działająca funkcja, która wytwarza losową wartość / ciąg heksadecymalny.

CREATE OR REPLACE PROCEDURE add_user (firstname in varchar2(20), lastname in varchar2(20), email in varchar2(100), area in varchar2(50), privileges in varchar2(2))
AS
e varchar2(100);
BEGIN

e := generate_password;

insert into user_login (user_name, first_name, last_name, creation_date, last_update_date,  user_privileges, user_pwd)

values ( email, firstname, lastname, SYSDATE, SYSDATE, privileges , e);

END add_user;

Odpowiedzi:

2 dla odpowiedzi № 1

Nie określaj długości parametrów varchar2 procedury, po prostu napisz VARCHAR2 bez rozmiaru.

To jest składnia PL / SQL. Jeśli się nad tym zastanowić, ma to więcej sensu niż definiowanie długości bufora, który i tak odziedziczył po kodzie wywołującym.


0 dla odpowiedzi nr 2

Próbujesz ustawić maksymalną długość dla parametrów wejściowych varchar2 - nie jest to poprawna składnia.

Próbować:

CREATE OR REPLACE PROCEDURE add_user (firstname in varchar2, lastname in varchar2, email in varchar2, area in varchar2, privileges in varchar2)

0 dla odpowiedzi № 3

Dude, Powinieneś jeszcze raz przeczytać dokumentację PLSQL.

  1. Nie potrzebujesz określonej długości parametrów w procedurze przechowywanej.
  2. Firma Oracle zaleca używanie parametrów referencyjnych w podprogramach, takich jak "p_empid employees.employee_id% TYPE".