尝试创建程序时出错,您认为这是为什么?

Error when trying to create procedure, why do you think that is?

所有。

我试过在 Oracle Apex 5 中创建过程。但是,我遇到了这个问题 'ORA-24344: success with compilation error'。我认为这是一个语法错误。你认为那是什么? *generate_password 是一个生成随机十六进制的工作函数 value/string.

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;

您正在尝试为 varchar2 输入参数设置最大长度 - 这不是有效的语法。

尝试:

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

不要定义过程的varchar2 参数的长度。简单写成没有大小的 VARCHAR2。

这是PL/SQL的语法。如果您考虑一下,它比定义从调用代码继承的缓冲区的长度更有意义。

伙计,你应该再读一遍 PLSQL 文档。

  1. 您不需要在存储过程中指定参数的长度。
  2. Oracle 建议在子程序中使用引用参数 Like "p_empid employees.employee_id%TYPE".