jac*_*ack 2 oracle package auto-increment
我试图在我的包装上使用自动增量而不使用触发器..有人可以解释我如何在我的包中使用它...我这样做没有工作它的抱怨abt变量未被声明或类型未分配..我看到了其他自动增量问题,但没有人使用自动增量没有触发包
PROCEDURE insertExample (
user_id_in IN sample.seq_user_id.nextval,
name_in IN sample.name%TYPE,
age_in IN sample.age%TYPE )
IS
BEGIN
INSERT INTO sample
(seq_user_id.nextval, name, age)
VALUES
(user_id_in, name_in, age_in);
END insertExample;
Run Code Online (Sandbox Code Playgroud)
您是否希望允许传入自定义user_id或始终使用序列?
在第一种情况下,您需要以下内容:
CREATE OR REPLACE PROCEDURE insertexample (
user_id_in in sample.user_id%type,
name_in in sample.name%type,
age_in in sample.age%type
)
IS
BEGIN
insert into sample
(user_id, name, age
)
values (nvl(user_id_in, seq_user_id.nextval), name_in, age_in);
END insertexample;
Run Code Online (Sandbox Code Playgroud)
如果你总是想使用序列(这可能是正确的选择),只需取出输入参数和NVL:
CREATE OR REPLACE PROCEDURE insertexample (
name_in in sample.name%type,
age_in in sample.age%type
)
IS
BEGIN
insert into sample
(user_id, name, age
)
values (seq_user_id.nextval, name_in, age_in);
END insertexample;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
478 次 |
| 最近记录: |