我用ADOCommand执行以下内容:
AdoCommand1.CommandText := 'IF EXISTS(SELECT ... FROM ...) INSERT INTO TABLE1 VALUES (...)';以上语句对应的是SqlServer数据库。执行没问题。现在我的问题是,如果是Oracle数据库,我这个CommandText该如何写才不会出错?
我查了一下pl/SQL的语法,改成这样: IF EXIST(SELECT ... FROM ...) THEN INSERT INTO TABLE1 VALUES (...),但是执行是就是报错。而且这种语句在PL/Sql Develepor中执行也提示‘无效的SQL’
AdoCommand1.CommandText := 'IF EXISTS(SELECT ... FROM ...) INSERT INTO TABLE1 VALUES (...)';以上语句对应的是SqlServer数据库。执行没问题。现在我的问题是,如果是Oracle数据库,我这个CommandText该如何写才不会出错?
我查了一下pl/SQL的语法,改成这样: IF EXIST(SELECT ... FROM ...) THEN INSERT INTO TABLE1 VALUES (...),但是执行是就是报错。而且这种语句在PL/Sql Develepor中执行也提示‘无效的SQL’
exists (selcet ...from ...)带星星的不一定是高手,
不帶星星的不一定不是高手
可能楼上的是对的
谢谢 包子 .
其实我是想知道 if... then ..else 在这个时候怎 么用?
if not query.IsEmpty then
begin
在INSERT
end;
if SQL%Found then
insert into Table1 Values (...)上面是我写的在ORACLE PL/SQL Developer中的语句,呵呵,我的存储过程也就是这么写的了,有问题再讨论一下吧,你先试试。还有,我跟小COOL在DELPHI版都带星星的了 :)附:没有想到,都转行不做技术了,还会再来搞ORACLE的搞一下。
if SQL%Found then
select * from ta_area在PL/SQL中执行,提示“无效字符”
where exists(select ... from ... where rownum=1); //加rownum=1可以提高效率
where exists(select ... from ... where rownum=1);