哥怒了,破PLSQL用的我蛋疼菊紧 求助!

shanguotao20 2010-09-03 03:45:25
来看段超简单的脚本
SELECT * FROM tmpes t;
DECLARE CountFlag INTEGER;
BEGIN
SELECT COUNT(*) INTO CountFlag FROM tmpes;
IF(CountFlag>0) THEN
DELETE FROM tmpes;
END IF;
INSERT INTO tmpes VALUES('1',2);
END;
以上脚本 无问题 查询X表是否有值 删除并插入数据
问题来了 这个BEGIN END;块后面 随便写个SQL 比如 SELECT * From x;
直接报错 "出现符号 SELECT"
出你妹啊 我在T-SQL 里想怎么写 怎么写!!!PL SQL太弱智 不行 强烈鄙视一下
有谁能给我整行的 谢谢了!!!!
...全文
79 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
dengjingheng 2010-09-03
1、不同执行单位选中执行
2、end以 ;/结束 具体请参考下面代码。
declare
TYPE tbl_role_interg_record is record(
typeId com_rule_integration_t.type_id%type,
contractTypeId com_rule_integration_t.contract_type_id%type,
orderTypeId com_rule_integration_t.order_type_id%type
);
role_record tbl_role_interg_record;
begin
select t.type_id,t.contract_type_id,t.order_type_id into role_record
from com_rule_integration_t t where t.contract_type_id='&contract_type_id';
dbms_output.put_line(role_record.typeid||':'||role_record.contracttypeid||':'||role_record.ordertypeid);
end;
/
回复
心中的彩虹 2010-09-03
[Quote=引用楼主 shanguotao20 的回复:]
来看段超简单的脚本
SELECT * FROM tmpes t;
DECLARE CountFlag INTEGER;
BEGIN
SELECT COUNT(*) INTO CountFlag FROM tmpes;
IF(CountFlag>0) THEN
DELETE FROM tmpes;
END IF;
INSERT INTO tmpes VALUES('1',2);
……
[/Quote]
--加个commit;和"/"执行符号




DECLARE
CountFlag INTEGER;
BEGIN
SELECT COUNT(*) INTO CountFlag FROM tmpes;
IF CountFlag>0 THEN
DELETE FROM tmpes;
END IF;
INSERT INTO tmpes VALUES('1',2);
commit;
END;

/



回复
shanguotao20 2010-09-03
万分感谢!
回复
想问下你过程后面加
select语句起什么作用?
oracle的过程里是不能直接 select * from tablename;的
回复
minitoy 2010-09-03
delcare到end是一个执行单位.你后面写的select是另一个执行单位.执行的时候选中再执行.
回复
ngx20080110 2010-09-03
SELECT * FROM tmpes t;
DECLARE CountFlag INTEGER;
BEGIN
SELECT COUNT(*) INTO CountFlag FROM tmpes;
IF(CountFlag>0) THEN
DELETE FROM tmpes;
END IF;
INSERT INTO tmpes VALUES('1',2);
END;
/
SELECT * FROM tmpes t;
回复
ngx20080110 2010-09-03

SELECT * FROM tmpes t;

DECLARE CountFlag INTEGER;
BEGIN
SELECT COUNT(*) INTO CountFlag FROM tmpes;
IF(CountFlag>0) THEN
DELETE FROM tmpes;
END IF;
INSERT INTO tmpes VALUES('1',2);
END;
-- 要加一個斜線來執行
/

SELECT * FROM tmpes t;

回复
相关推荐
发帖
基础和管理
创建于2007-09-28

1.7w+

社区成员

Oracle 基础和管理
申请成为版主
帖子事件
创建了帖子
2010-09-03 03:45
社区公告
暂无公告