简化脚本
标准脚本
工作环境
SQLPLUS Command Window
SQLPLUS Test Window
语法要求
无
declare begain exception end
定义变量
var 名 数据类型
名 数据类型
使用变量
:名
名
赋值语句
exec:名 :=表达式
名 :=表达式
调用方法
exec 方法名(参数)
call 方法名(参数)
存储过程:子程序
create or replace procedure 名字
参数定义(名字 in out 数据类型 最后一个参数不用写逗号)
is
变量定义
begin
[exception]
end;
create or replace procedure testNow is
str varchar2(50);
begin
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') into str from dual ;
dbms_output.put_line(str);
end testNow;
使用: 名字(参数) ; exec 名字(参数);
Command Window 默认不开启dbms_output的输出 set serverout on;
exec testNOW();
set serverout on;
测试
begin
-- Call the procedure
testnow;
end;
2017-02-14 14:30:23
PL/SQL 如何进行测试?
create or replace procedure testBook
(au in varchar2)
is
str varchar2(50);
cursor cur_bname(au_cur varchar2) is
select * from busi_td_books t where t.author = au_cur;
begin
for book in cur_bname(au) loop
str := str || book.name || ', ';
end loop;
dbms_output.put_line(str);
end ;
in 做输入参数 只能从调用方传递值给存储过程
out 做输出参数 只能从存储过程中传递值给调用方
in out 输入输出参数 值双向传递
1、根据位置传递:只写参数值,按照顺序依次传递
2、根据名字传递:参数名 =>值 值可以是常量,也可以是变量
在简易脚本中测试
clear;
var bname varchar2(500);
exec :bname := '123456';
exec testbook(:bname);
同义词:synonym
1、可以通过 用户名 .对象名 访问指定用户的指定对象
2、必须要有权限
3、语法:
create or replace synonym abc for SYS.ACCESS$;
4、在synonym 前面加public,创建公共关键字,关键字的定义所有用户都能使用。
create or replace public synonym abc for SYS.ACCESS$
Database-link dblink
语法
create datebase link 表连接变量名
connect to 用户名 identified by "密码"
using '机器名或者IP/实例名';
企业版 实例名字orcl 精简版 XE
-- Create database link
create public database link 22
connect to 332 identified by "22"
using '22';
create table 表名
as
使用:
select * from 表的名字@用户名
注意:
1、创建Database link的时候,用的用户名必须是对方的数据库的账号和密码
2、机器名或者IP 实例名,也是对方的机器名 对方的IP 对方的实例名
3、Dblink的权限,取决于创建时的账号密码,但是最大也只能对对方的表和视图进行增删改查。
4、与双方的数据库版本类型没有关系,只要都是oracle就行。