APEX ORACLE - 将多个参数插入到从顶点到数据库的多个列中 table

APEX ORACLE - Insert multiple parameters into multiple columns from apex to database table

- APEX APP结构:

Apex Oracle > 页面 > 表单 > 内容正文 > 项目 > p14_surname,p14_name,p14_birth_date,p14_gender,p14_city,P14_check

**我在 Apex 操作中尝试执行的操作 - 执行服务器端代码:

if the p14_check = 1 (true) will execute the package
else p14_check = 0(false) will return an error message, for example 
dbms_output.put_line("there is an error in the ID created/generated")**

顶点页面的结构:

区域按钮 > 创建 > 动态动作 > CLICK_CREATE(动态动作的名称)> TRUE > PL/SQL 代码:

begin
 pkg_cf.cod_fiscale ( V_STR_C    => :P14_surname,
                      V_STR_N    => :P14_name,
                      V_DATA     => :P14_birth_date,
                      V_SESSO    => :P14_gender,
                      V_COMUNE   => :P14_city,
                      v_controllo => :P14_check);   
if P14_CHECK = 1 then insert into employee_list(name of the table) set surname = :P14_surname,
                                            set name = :P14_name,
                                            set birth_date = :P14_birth_date,
                                            set gender = :P14_gender,
                                            set city = :P14_city
else P14_CHECK = 0 then dbms.output.put_line ("there is an error in the ID created/generated");   

我写的代码给我一个错误是: ORA-00926: 缺少 VALUES 关键字

:设置姓氏=:P14_surname,

您不使用内置表单区域功能的原因是什么?这比创建自己的包要简单得多。它还具有手动编码需要大量工作的功能,例如丢失更新检测。看来你要重新发明轮子了。

您看到的错误是因为您的插入语句的语法不正确。这是您的代码:

...
if P14_CHECK = 1 then insert into employee_list(name of the table) set surname = :P14_surname,
                                            set name = :P14_name,
                                            set birth_date = :P14_birth_date,
                                            set gender = :P14_gender,
                                            set city = :P14_city

但是插入语句的语法是

  INSERT INTO employee_list (surname, name, birth_date, gender, city) VALUES
    (:P14_surname,:P14_name,:P14_birth_date,:P14_gender,:P14_city);

反之:如果您在 sqlcl、sqlplus 或 sqldeveloper(或 apex 中的研讨会)等客户端工具中 运行,则仅在 pl/sql 中使用 dbms_output。在无法使用输出并可能导致意外缓冲区溢出错误的应用程序中。