oracle - 在 Oracle Express 中创建触发器

标签 oracle oracle11g oracle-sqldeveloper

我试图在 Oracle 11g Express 和 SQL Developer 中做一些类似自动增量的事情。
我对 Oracle 知之甚少,而且我对触发器也很陌生。

我尝试运行它,但我不知道如何正确执行它。

CREATE TABLE theschema.thetable
(id NUMBER PRIMARY KEY,
name VARCHAR2(30));

CREATE SEQUENCE theschema.test1_sequence
START WITH 1
INCREMENT BY 1;

create or replace trigger insert_nums
before insert on theschema.thetable
for each row
begin
select test1_sequence.nextval into :new.id from dual;
end;
/

当我尝试创建触发器时,我得到一个屏幕,要求我提供一些“绑定(bind)”。
该对话框只有一个复选框“null”。这是什么意思,我该怎么做
一个正常工作的脚本?

进行这种“自动增量”时要采取什么预防措施?

Enter binds

最佳答案

SQL Developer 似乎认为您正在运行普通的 DML(数据操作)脚本,而不是 DDL(数据定义)。它还认为:new.id是一个可绑定(bind)变量。

为什么会发生这种情况,我不知道;我无法在 Oracle SQL Developer 2.1 中重现它。

尝试在 theschema 中打开一个新的 SQL 工作表窗口架构并通过按 F5(不是 F9)执行“整个”脚本(不是语句)。

关于oracle - 在 Oracle Express 中创建触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12166046/

相关文章:

java - 多个主键表 - Hibernate NonUniqueObjectException

c# - 未找到时区区域

oracle11g - 使用 oracle 数据库托管 java web 应用程序

visual-studio-2010 - 字符串未被识别为有效的 bool 值。 - 与 C# 相关的错误。 GridView 复选框字段

sql - 关于数据库事务中不同隔离级别的一些说明?

oracle - 不使用触发器在 Oracle 中自动递增

oracle11g - Oracle 11g的默认密码?

mysql - SQL对多个组进行排名

oracle - 如何在Oracle SQL Developer中导出Clob字段数据

oracle-sqldeveloper - 在 Oracle SQL Developer 中为表列设置 DATA_DEFAULT 值