易截截图软件、单文件、免安装、纯绿色、仅160KB

全面学习ORACLE Scheduler特性(3)使用Programs

二、使用Programs
  在论坛中偶尔见过有人讨论如何在ORACLE中执行操作系统命令,或是ORACLE数据库外的应用。应该说在9i及之前的版本中,虽然说并非完全无法实现(其实还是有多种方式能够变相实现的),不过复杂的实现方式让DBA使劲了力,伤透了心,费劲了事儿。
  进入10g版本之后,就完全不必如此费神,因为有了DBMS_SCHEDULER,因为有了PROGRAM。
2.1 创建Programs
  Scheduler 中的Program对象并不是常规意义上的"程序"或"应用",而就是一个"对象",由DBA定义的,具有执行某项功能的特殊对象。Program中实际执行的操作可以分为下列三种类型:
PL/SQL BLOCK :标准的pl/sql代码块;
STORED PROCEDURE :编译好的PL/SQL存储过程,或者Java存储过程,以及外部的c子程序;
EXECUTEABLE :ORACLE数据库之外的应用,比如操作系统命令等等。
  创建Programs使用DBMS_SCHEDULER.CREATE_PROGRAM过程,该过程支持的参数如下:
JSSWEB> desc dbms_scheduler.create_program;
Parameter Type Mode Default?
------------------- -------------- ---- --------
PROGRAM_NAME VARCHAR2 IN
PROGRAM_TYPE VARCHAR2 IN
PROGRAM_ACTION VARCHAR2 IN
NUMBER_OF_ARGUMENTS BINARY_INTEGER IN Y
ENABLED BOOLEAN IN Y
OMMENTS VARCHAR2 IN Y
  如上所示,前三项为必选参数,各参数实际代表的意义如下:
PROGRAM_NAME :指定一个program名称;
PROGRAM_TYPE :Program的类型,如前文中所述,Program支持三种类型;
PROGRAM_ACTION :实际执行的操作,应与前面PROGRAM_TYPE参数关联使用。比如说前面指定了PROGRAM_TYPE为"PLSQL_BLOCK",那么此处要执行的action就应当是一段标准的pl/sql代码。如果前面指定PROGRAM_TYPE为"STORED_PROCEDURE",那么此处要执行的action就应当是ORACLE中定义好的存储过程(含Java存储过程),如果前面指定PROGRAM_TYPE为"EXECUTABLE",那么此处就应该指定外部命令的命令行信息(含路径信息);
NUMBER_OF_ARGUMENTS :指定支持的参数个数,默认值为0即没有参数。每个program最多能够支持255个参数,注意如果PROGRAM_TYPE设置为PLSQL_BLOCK,那么本参数自动忽略;
ENABLED :指定是否将创建的program置为有效状态,默认情况下为f


相关文档:

两个经典的Oracle触发器示例

【案例一】
题目:
--触发器:
--添加员工信息,流水号作为自动编号(通过序列生成),
--并且判断如果工资小于0,则改为0;如果大于10000,则改为10000。
CREATE TABLE emp2(
e_id NUMBER,
e_no NUMBER,
e_name VARCHAR2(20),
e_sal NUMBER
)
SELECT * from emp2;
CREATE SEQUENCE seq_trg_id;
INSERT INTO emp2(e_i ......

登录oracle数据库时常用的操作命令整理

录oracle数据库时常用的操作命令整理
1、su – oracle 不是必需,适合于没有DBA密码时使用,可以不用密码来进入sqlplus界面。
2、sqlplus /nolog 或sqlplus system/manager 或./sqlplus system/manager@ora9i;
3、SQL>connect / as sysdba ;(as sysoper)或
connect internal/oracle AS SYSDBA ;(scott/tiger) ......

关于Oracle 10g scott用户解锁的方法

以system登录进去之后,执行下面的命令:
SQL> alter user scott account unlock; (完成解锁的操作)
 用户已更改。
SQL> alter user scott identified by tiger; (重新给scott这个用户设定密码)
 用户已更改。
SQL> conn scott/tiger  
已连接。 ......

一点Oracle笔记

Oracle
1,shutdown之后,如何启动数据库实例?
通过CMD命令符 sqlplus "sys/password as
sysdba",会连到一个空闲实例,这样可再用startup命令。
2,装了数据库之后,用了shutdown,后用了startup等启动之后,可用sql
plus和网页方式连oracle。但用jdbc连接出错?
是监听器没启动:D:\oracle\product\10.1.0\Db_1\ ......

Oracle 10g schedule job的常用操作

Oracle数据库10g schedule job的常用操作:
-- job 权限
grant create job to somebody;
-- job 创建
begin
dbms_scheduler.create_job (
job_name => 'AGENT_LIQUIDATION_JOB',
job_type => 'STORED_PROCEDURE',
job_action => 'AGENT_LIQUIDATION.LIQUIDATION', --存储过程名
start_date => ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号