【oracle】变量,流程控制语句,子程序中的DML,DDL,TCL语句,子程序中的数据类型...

1117-01 变量,流程控制语句,子程序中的DML,DDL,TCL语句,子程序中的数据类型

变量:
绑定变量 variable,绑定常量 define
局部变量
参数变量
循环计数变量

 


赋值语句
1.赋值符 :=
2.select into语句

流程控制语句
1.顺序
2.分支
if <expression> then
<body>
end if;

if <expression> then
<body>
else
<body>
end if;

if <expression> then
<body>
elsif
<body>
end if;
3.循环
--当型
loop
exit when <expression>;
<body>
end loop;
--直到型
loop
<body>
exit when <expression>;
end loop;
--其他
loop
<body1>
exit when <expression>;
<body2>
end loop;
说明:其他这种写法,很适合游标的fetch


例子:
set serveroutput on;

declare
vi_num integer := 1;
vi_sum integer default 0;
begin
loop
exit when vi_num > 100;
vi_sum := vi_sum + vi_num;
vi_num := vi_num + 1;
end loop;
dbms_output.put_line('vi_num='||vi_num||',vi_sum='||vi_sum);
end;
/

--当型
while <expression> loop
<body>
end loop;

for <variable> in <value1> .. <value2>|<cursor>|<select语句>
loop
<body>
end loop;

 

查询语句
1.静态语句
select into <var> from <结果集>
2.动态语句
execute immediate <vv_sql> into <var>;

例子:
declare
vv_sql varchar2(1000);
vv_brand_code varchar2(30);
vv_brand_name varchar2(30);
begin
vv_brand_code := 'B01'; --变量vv_brand_code的赋值 必须在 vv_sql赋值之前
vv_sqp := 'select brand_name from td_brand where brand_code=upper('||''''||vv_brand_code||''''||')';
execute immediate vv_sql into vv_brand_name;
exception
when others then
dbms_output.put_line(sqlcode||','||substr(sqlerrm,1,200)||',vv_sql='||vv_sql);
end;
/


DML语句:insert,update,delete
1.静态语句
2.动态语句
execute immediate <str_variable>;

TCL语句:commit,rollback
1.静态语句
2.动态语句


必须使用动态语句的场景:
1.DML语句
2.表名,字段名 是 使用变量拼接得到的
注意:动态语句的sql不能以;结尾,否则报错。


子程序中的数据类型
1.基本数据类型
2.列类型,行类型
<table>.<column>%type
<table>%rowtype
<cursor>%rowtype
3.exception
4.cursor
6.复合类型:记录 和 集合

posted on 2018-04-05 11:57  绿Z 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/greenZ/p/8721814.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值