我采用下列语句调用时发现,系统老是执行这条语句.
insert into sales(CTNO, CUSTOMER) values(CTNOS, CUSTOMER);
我现在要求:
当CTNOS 有值时,则执行更新操作.
update sales set CUSTOMER=CUSTOMER WHERE CTNO=CTNOS当 CTNOS 没有值时,则执行插入操作:
insert into sales(CTNO, CUSTOMER) values(CTNOS, CUSTOMER);调用语句:DECLARE
CTNOS VARCHAR2(200);
CUSTOMER VARCHAR2(200);BEGIN
CTNOS := 'qqqq';
CUSTOMER := 'qqqq'; SALES_INSERT ( CTNOS, CUSTOMER );
COMMIT;
END;
下面是需要修改的ORACLE过程.CREATE OR REPLACE procedure Sales_Insert(
CTNOS in varchar2,
CUSTOMER in varchar2)
is
begin
if (CTNOS!='' and CTNOS IS NOT null)
then
update sales set CUSTOMER=CUSTOMER WHERE CTNO=CTNOS;
ELSE
insert into sales(CTNO, CUSTOMER) values(CTNOS, CUSTOMER);
END IF;end Sales_Insert;
/
解决方案 »
- dbca建数据库问题
- 再发新贴:关于oracle存储过程全表扫描处理百万数据的速度问题
- 数据导入,出现ORACLE 的 922 错误,请帮忙解答,谢谢大家
- 求助了解随机森林或者R语言的高手!
- 关于ORACLE INDEX的问题,高手请进!
- 一個關於統計的sql語句,鬱悶死我了,大家給幫忙看看,很急
- 语句如何修改才能正确?有经验的高手一看就会!
- Oracle BLOB列检索问题(或:InterMedia配置问题)
- 把旧数据倒库到ORACLE中,有一个字段为主键,新插一条记录主键值和旧重复,怎么办????
- 求教大神脚本怎么写,用什么公式
- 聊聊 .net 下用什么联接方式访问Oracle比较好?
- 高手支招:扩展索引的问题!高分求助!!!!!!!!!!!!!!!!!
v_CTNOS in varchar2,
v_CUSTOMER in varchar2)
is
begin
update sales set CUSTOMER=v_CUSTOMER WHERE CTNO=v_CTNOS;
if sql%notfound then
insert into sales(CTNO, CUSTOMER) values(v_CTNOS, v_CUSTOMER);
end if;
commit;
end Sales_Insert;
/
能不能请教您:
在这里,为什么下面这个语句不行???
if (CTNOS!='' and CTNOS IS NOT null)
改if ( (CTNOS!='null' or CTNOS!='null' or CTNOS!=' ') and CTNOS IS NOT null)