【发布时间】:2016-08-27 03:12:29
【问题描述】:
使用 SQL Developer 在 Oracle 中插入存储过程语句:
CREATE OR REPLACE PROCEDURE T_Department_INSERT
AS
BEGIN
insert INTO T_Department(dept_id, dept_name, dept_location, manager_id)
values(select case count(*) when 0 then 1 else max(dept_id) + 1 (end.from T_Department),
par_dept_id, par_dept_name, par_dept_location, par_manager_id);
NULL;
END T_Department_INSERT;
【问题讨论】:
-
1) 不要混用
INSERT INTO VALUES/SELECT语法,2) 避免MAX(...) + 1,它不能很好地扩展,考虑使用SEQUENCE -
感谢您的回复,您可以在编辑后发布代码吗?提前致谢
-
请发布数据示例,说明您的程序应该做什么
-
好吧,我使用 sql developer,我创建了名为 'T_Department' 的新表有 'dept_id,dept_name,dept_location,manager_id' 我想创建一个存储过程以使用此代码插入新行“CREATE OR替换过程 T_Department_INSERT 作为开始插入 T_Department(dept_id,dept_name,dept_location,manager_id)值(选择案例计数(*)当 0 然后 1 否则最大(dept_id)+1(end.from T_Department),par_dept_id,par_dept_name,par_dept_location,par_manager_id ); NULL; END T_Department_INSERT;"并显示错误
标签: oracle stored-procedures insert