【发布时间】:2021-08-21 15:41:44
【问题描述】:
我在遵循以下链接中的 Oracle Live Apex 教程时遇到问题:
具体来说,它适用于我尝试在我的表中创建触发器作为该教程的一部分。我复制并粘贴到我的 Oracle Apex 编辑器中的代码如下:
create or replace trigger DEPARTMENTS_BIU
before insert or update on DEPARTMENTS
for each row
begin
if inserting and :new.deptno is null then
:new.deptno := to_number(sys_guid(),
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
end if;
end;
/
create or replace trigger EMPLOYEES_BIU
before insert or update on EMPLOYEES
for each row
begin
if inserting and :new.empno is null then
:new.empno := to_number(sys_guid(),
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
end if;
end;
/
但是,当我尝试在 Oracle Apex 工作区中运行上述代码时,出现以下错误:
第 7 行错误:PLS-00103:遇到符号“/”
但是,当我在 Oracle Live SQL 空间(教程所在的位置)中运行相同的代码时,代码运行良好。那么我在 Oracle APEX 工作区中为什么会出现这样的错误?这很奇怪,因为我很确定语法是正确的,因为我从 Oracle Live 教程中复制并粘贴了上面的代码。
为方便起见,这里是上面链接中教程提供的代码,用于创建必要的表:
部门表
create table DEPARTMENTS (
deptno number,
name varchar2(50) not null,
location varchar2(50),
constraint pk_departments primary key (deptno)
);
EMPLOYEES 表
create table EMPLOYEES (
empno number,
name varchar2(50) not null,
job varchar2(50),
manager number,
hiredate date,
salary number(7,2),
commission number(7,2),
deptno number,
constraint pk_employees primary key (empno),
constraint fk_employees_deptno foreign key (deptno)
references DEPARTMENTS (deptno)
);
我还深入学习了教程,只是在 Oracle Apex Workspace 中遇到了类似的错误,即 ORA-00933:运行以下代码时 SQL 命令未正确结束:
insert into departments (name, location) values
('Finance','New York');
insert into departments (name, location) values
('Development','San Jose');
我认为上面链接中的教程已经过时,因为 Oracle Apex Workspace 刚刚更新了它的版本并且教程的某些代码不再有效,但事实可能并非如此。
感谢任何帮助,谢谢!
【问题讨论】:
-
见这里 -docs.oracle.com/cd/B19306_01/server.102/b14357/ch12004.htm IDK 关于 apex 的任何信息,但我猜是 apex 工作区执行单个语句?分别运行每个语句,并查看
-
@OldProgrammer 我试过了,效果很好,谢谢!显然 SQL 研讨会的工作区的 SQL 命令部分一次只能处理一条语句,这真的很糟糕,因为一次执行一条语句可能很乏味。
-
很高兴它成功了。
标签: sql oracle oracle-apex-5