oracle定义变量传入sql,ORACLE变量定义及使用(另,T-SQL EXISTS的PLSQL替代写法)

1. 简单变量

declare v_cnt NUMBER(10,0) := 0;

BEGIN

SELECT COUNT(1) INTO v_cnt FROM concept.Decoction WHERE DecoctionId = -1;

IF v_cnt = 0 THEN

insert into concept.Decoction( DecoctionId, Code, Name, MnemonicCode, SpellCode, WBCode, ClinicItemId, IsSpecial, IsDeleted, RowVersion, IsNeedAccount ) values

( -1, NULL, NULL, Null, NULL, NULL, -1, 0, 0, SYSDATE, 0 );

END IF;

END;

2. 以表的字段类型定义的变量

create table DBO.TEST_TBL

(

ID NUMBER(10) NOT NULL PRIMARY KEY

);

declare v_cnt CONCEPT.decoction.DecoctionId%type := 0;

BEGIN

SELECT DecoctionId INTO v_cnt FROM concept.Decoction WHERE DecoctionId = -1;

INSERT INTO DBO.TEST_TBL SELECT v_cnt from dual;

END;

select * from DBO.TEST_TBL;

3. 以表的行定义的变量

drop table DBO.TEST_TBL;

create table DBO.TEST_TBL

(

ID NUMBER(10) NOT NULL PRIMARY KEY

);

declare v_row CONCEPT.decoction%rowtype;

BEGIN

SELECT * INTO v_row FROM concept.Decoction WHERE DecoctionId = -1;

INSERT INTO DBO.TEST_TBL SELECT v_row.DecoctionId from dual;

END;

select * from DBO.TEST_TBL;

4. 以记录类型定义的变量

drop table DBO.TEST_TBL;

create table DBO.TEST_TBL

(

ID NUMBER(10) NOT NULL PRIMARY KEY,

NAME nvarchar2(50)

);

declare

type v_flds is record(

ID concept.Decoction.DecoctionId%type,

NAME concept.Decoction.Name%type);

v_row v_flds;

BEGIN

SELECT DecoctionId,Name INTO v_row FROM concept.Decoction WHERE DecoctionId = 62;

INSERT INTO DBO.TEST_TBL SELECT v_row.ID, v_row.NAME from dual;

END;

select * from DBO.TEST_TBL;

原文:http://www.cnblogs.com/chriskwok/p/4252462.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值