写一个存储过程 传入两个整数参数 把它们的和放入
第二参数中
create or replace procedure getsum(x in number,
y in out number)
is
begin
y:=x+y;
end;
写一个函数 传入两个整数参数 返回他们最小值
create or replace function getmin(x in number,
y in number) return number
is
begin
if x<y then
return x;
end if;
return y;
end;
存储过程调用?
在proc代码中 写如下代码
exec sql execute
begin
/*调用plsql*/
end;
end-exec;
userid=openlab/open123
程序在预编译的时候 就需要连接oracle 去检查存储过程
或者函数存在不存在
数据库的连接:
本地连接:
exec sql connect:用户名/密码;
exec sql connect :用户名 identified by 密码;
连接的oracle实例名
echo $ORACLE_SID
远程连接:
1.使用数据库链接访问远程数据库
database link
try{
}catch(){
}
exec sql whenever 条件 动作;
条件:sqlwarning sqlerror not found
动作:do 函数 continue break stop goto
把id为-1的员工的first_name 放入一个宿主变量
中,如果查询到了数据就输出这个员工的first_name
如果没有发现数据 则进行错误处理(打印一下原因)
错误处理要对应的向上就近
转账
exec sql update account set salary=salary-500000 where id=1;(成功)
exec sql update account set salary=salary+500000 where id=5;(失败)
动态sql:一个sql语句是一个字符串
动态sql1:
1.非select
2.不能包含宿主变量(不能有占位符)
不适合批量处理 效率不高
一般只适合 执行次数较少的sql
动态sql2:
可以包含宿主变量(可以有占位符号)
"insert into test values(:b0,:b1)";
适合批量处理 效率高
动态sql3:
解决select 语句是字符串
可以有占位符号
动态sql2 + 游标
proc的知识点:
1.什么是pro程序
2.为什么要使用proc 和proc++
3.什么是宿主语言 什么是宿主变量
宿主变量的类型
变长字符串的处理方式
宿主变量的使用的注意事项
4.proc的预编译选项有哪些
哪些和c++相关
哪些和plsql有关
5.如何写一个proc程序
步骤
a 编写pc代码
b 预编译
c 链接 执行
6.指示变量
用法
7.数组变量
指示变量数组
8.proc中如何嵌入sql
select
dml ddl 事务控制
如何调用plsql
9.数据库连接接
本地连接
远程连接
a database link
b using at
10.数据的存取 与更新
结构体
游标
非滚动游标
滚动游标
11.异常
exec sql whenever 条件 动作;
12.动态sql
a
b
c
第二参数中
create or replace procedure getsum(x in number,
y in out number)
is
begin
y:=x+y;
end;
写一个函数 传入两个整数参数 返回他们最小值
create or replace function getmin(x in number,
y in number) return number
is
begin
if x<y then
return x;
end if;
return y;
end;
存储过程调用?
在proc代码中 写如下代码
exec sql execute
begin
/*调用plsql*/
end;
end-exec;
userid=openlab/open123
程序在预编译的时候 就需要连接oracle 去检查存储过程
或者函数存在不存在
数据库的连接:
本地连接:
exec sql connect:用户名/密码;
exec sql connect :用户名 identified by 密码;
连接的oracle实例名
echo $ORACLE_SID
远程连接:
1.使用数据库链接访问远程数据库
database link
$ORACLE_HOME/network/admin/tnsnames.ora
try{
}catch(){
}
exec sql whenever 条件 动作;
条件:sqlwarning sqlerror not found
动作:do 函数 continue break stop goto
把id为-1的员工的first_name 放入一个宿主变量
中,如果查询到了数据就输出这个员工的first_name
如果没有发现数据 则进行错误处理(打印一下原因)
错误处理要对应的向上就近
转账
exec sql update account set salary=salary-500000 where id=1;(成功)
exec sql update account set salary=salary+500000 where id=5;(失败)
动态sql:一个sql语句是一个字符串
动态sql1:
1.非select
2.不能包含宿主变量(不能有占位符)
不适合批量处理 效率不高
一般只适合 执行次数较少的sql
动态sql2:
可以包含宿主变量(可以有占位符号)
"insert into test values(:b0,:b1)";
适合批量处理 效率高
动态sql3:
解决select 语句是字符串
可以有占位符号
动态sql2 + 游标
proc的知识点:
1.什么是pro程序
2.为什么要使用proc 和proc++
3.什么是宿主语言 什么是宿主变量
宿主变量的类型
变长字符串的处理方式
宿主变量的使用的注意事项
4.proc的预编译选项有哪些
哪些和c++相关
哪些和plsql有关
5.如何写一个proc程序
步骤
a 编写pc代码
b 预编译
c 链接 执行
6.指示变量
用法
7.数组变量
指示变量数组
8.proc中如何嵌入sql
select
dml ddl 事务控制
如何调用plsql
9.数据库连接接
本地连接
远程连接
a database link
b using at
10.数据的存取 与更新
结构体
游标
非滚动游标
滚动游标
11.异常
exec sql whenever 条件 动作;
12.动态sql
a
b
c