oracle存储过程的问题
我现在有一个存储过程
CREATE OR REPLACE Procedure p_insert_tb_user
(
id in Number,
name in Nvarchar2,
pwd in Nvarchar2
)
as
BEGIN
insert into tb_users values (id,name,pwd);
commit;
End;
我的id是自增序列,我在调用的时候写exec p_insert_tb_user(null,'admin','admin')会报错,写exec p_insert_tb_user(userIdentity.nextval,'admin','admin')也会报错,请问应该要怎么写id这列的值呢?谢谢各位了!
什么错啊???
null的时候报:无法将 NULL 插入
userIdentity.nextval的时候报:在此上下文中不允许表,视图或序列引用 'userIdentity.NEXTVAL'
id没有插入,写个单独过程调用生成id,然后在插入
存储过程改一下,参数不能使用序列
SQL code:
CREATE OR REPLACE PROCEDURE p_insert_tb_user(NAME IN NVARCHAR2, pwd IN NVARCHAR2) AS
BEGIN
INSERT INTO tb_users VALUES (userIdentity.nextval, NAME, pwd);
COMMIT;
END;
1:
declare
v_id number;
begin
select userIdentity.nextval into v_id from dual;
exec p_insert_tb_user(v_id,'admin','admin')
end;
2:
修改存储过程如下:
CREATE OR REPLACE Procedure p_insert_tb_user
(
name in Nvarchar2,
pwd in Nvarchar2
)
as
BEGIN
insert into tb_users values (userIdentity.nextval ,name,pwd);
commit;
End;
SQL code
Code highlighting produce
相关问答:
安装了Oracle 10g,默认安装了orcl数据库,这个数据库能不能删除啊,还有我如果新建了其他数据库,怎么知道在web中登陆不同数据库的地址啊?
1
可以删除
2
在WEB地址栏中输入地址的时候指定新创建的数据库的IP ......
大家好,我现在把oracle服务器上面的原始文件,下载到本机了.我想在本机访问数据库怎么设置啊.是不是类似可以建立一个什么虚拟服务器来实现.请大家出出主意
引用
大家好,我现在把oracle服务器上面 ......
oracle 11g 安装 01092 错误,
日志信息:
[oracle@linux trace]$ vi alert_orcl.log
MMON started with pid=14, OS id=9089
RESETLOGS after incomplete recovery UNTIL CHANGE 522752
Errors in file / ......
oracle数据库有哪些对象
这问得太笼统了,友情帮顶.
这是一个大问题,很大的问题。
帮顶......
------------------------------------------------------------------------------
Blog: http://b ......