ORACLE系统包介绍
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle 系统包
DBMS_OUTPUT
a)启用
i. dbms_output.enable(buffer_size in integer default 20000);
ii. set serveroutput on;
b)禁用
i. dbms_output.disable;
c)PUT和PUT_LINE
i. PUT:所有信息显示在同一行
ii. PUT_LINE信息显示后,自动换行
d)NEW_LINE用于在行的尾部追加行结束符,一般用PUT同时使用
e)GET_LINE和GET_LINES
i. DBMS_OUTPUT.GET_LINE(li ne 0UTVARCHAR2,status OUT INTEGER)用于取缓冲区的单行
信息
ii. DBMS_OUTPUT.GET_LINES(lines OUT chararr,numlies IN OUT INTEGER) 用于取得缓冲区的多行信息
DBMS_JOB
a)SUBMIT用于建立一个新作业
语法
DBMS_JOB.SUBMIT(
job OUT BINARY_INTEGER,
what IN VARCHAR2,
next_date IN DATE DEFATULT SYSDATE, interval IN VARCHAR2 DEFAULT ' NULL' ,
no_parse IN BOOLEAN DEFAULT FALSE, instance IN BINARY_INTEGER DEFAULT
any_instance, force IN DEFAULT FALSE);
例子
VAR jobno NUMBER;
BEGIN
DBMS_JOB.SUBMI(
:jobno,
'pro_hrs101d0_ins_hrs101t0', sysdate,
‘sysdate+1 ');
b)REMOVE!于删除作业队列中的特定作业
语法:DBMS_JOB.REMOVE(jov IN BINARY_INTEGER);
例子:DBMS_JOB.REMOVE(10);--删除JOB号为10 的JOB
c)CHANGE用于改变与作业相关的所有信息
语法:
DBMS_JOB.CHANGE(
job IN BINARY_INTEGER,
what IN VARCHAR2,
next_date IN DATE,
interval IN VARCHAR2, instance IN BINARY_INTEGER DEFAULT NULL, force IN
BOOLEAN DEFAULT FALSE);
例子:execute dbms_job.change(2,null,null, 'sysdate+7')-修改2 号job 的
间隔时间为7 天
d)WHA:T 用于改变作业要执行的操作
语法:DBMS_JOB.WHAT(job IN BINARY_INTEGER,what IN VARCHAR2);
e)NEXT_DAT:用于改变作业的下次运行日期
语法:DBMS_JOB.NEXT_DATE(job in BINARY_INTEGER,next_date IN DATE);
f)INSTANCE用于改变运行作业的例程
语法:DBMS_JOB.INSTANCE(job IN BINARY_INTEGER, INSTANCE IN BINARY_INTEGER,
force IN BOOLEAN DEFAULT FALSE);
g)INTERVAL用于改变作业的运行时间间隔
语法:DBMS_JOB.INTERVAL(job IN BINARY_INTEGER,interval IN VARCHAR2);
h)BROKEN用于设置作业的中断标记.当中断了作业之后,作业将不会被运行
语法:DBMS_JOB.BROKEN(job IN BINARY_INTEGER,
broken IN BOOLEAN,
next_date IN DATE DEFAULT SYSDATE);
i)RUN用于运行已存在的作业
语法:DBMS_JOB.RUN(jobin BINARY_INTEGER,force IN BOOLEANDEFAULTFALSE); 三、DBMS_PIPE
概述:在同一例程的不同会话之间的管道通信
a)CREATE_PIPE用于建立公用或私有管道.如果参数private 为TRUE则为私有管道语法:
DBMS_PIPE.CREATE_TYPE(
pipename IN VARCHAR2,-- 指定管道的名称maxpipesize IN INTEGER DEFAULT 8192,--
指定管道消息的最大尺寸private IN BOOLEAN DEFAULT TRUE) --TRUE 为私有,FALSE 为
公用
REURN INTEGER;--如果返回为0,则管道建立成功,否则为建立管道失败
b)PACK_MESSAG用于将消息写入到本地消息缓冲区。
语法:DBMS_PIPE.PACK_MESSAGE(item IN VARCHAR2/NCHAR/NUMBER/DATE);
DBMS_PIPE.PACK_MESSAGE_RAW(item IN RAW); DBMS_PIPE.PACK_MESSAGE_ROWID(item
IN ROWID);
c)SEND_MESSAG用于将本地消息缓冲区的内容发送到管道
语法:DBMS_PIPE.SEND_MESSAGE(
pipename IN VARCHAR2,
timeout IN INTEGER DEFAULT MAXWAIT,-- 指定发送消息的超时时间
maxpipesize IN INTEGER DEFAULT 8192)
RETURN INTEGER;-- 如果返回为0,则发送成功,1为超时,3 为出现中断