oracle如何执行代码 oracle数据库代码执行

怎样实现每天自动执行oracle的存储过程一次?

用job

成都创新互联公司网站建设公司,提供网站设计制作、成都网站建设,网页设计,建网站,PHP网站建设等专业做网站服务;可快速的进行网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,是专业的做网站团队,希望更多企业前来合作!

oracle定时器调用存储过程

1、创建一个表,为了能清楚看到定时器的运行情况我们创建一个带有日期字段的表

Sql代码  

create table job_table(run_time date);  

create table job_table(run_time date);

2、创建存储过程

Sql代码  

create or replace procedure job_proc is  

begin

insert into job_table (run_time) values (sysdate);  

end;  

create or replace procedure job_proc is

begin

insert into job_table (run_time) values (sysdate);

end;

3、创建job,并且指定为一分钟执行一次

Sql代码  

declare

job number;  

begin

dbms_job.submit(job, 'job_proc;', sysdate, 'TRUNC(sysdate,''mi'') + 1 / (24*60)');  

end/  

commit;  

declare

job number;

begin

dbms_job.submit(job, 'job_proc;', sysdate, 'TRUNC(sysdate,''mi'') + 1 / (24*60)');

end/

commit;

4.创建之后自动处于运行状态,我们查询job表,看看我们创建的job

Sql代码  

select job,broken,what,interval,t.* from user_jobs t;  

select job,broken,what,interval,t.* from user_jobs t;

job broken what interval ...

81 N job_proc; TRUNC(sysdate,'mi') + 1 / (24*60) ...

用job

oracle定时器调用存储过程

创建一个表,为了能清楚看到定时器的运行情况我们创建一个带有日期字段的表

Sql代码  

create table job_table(run_time date);  

create table job_table(run_time date);

2.创建存储过程

Sql代码  

create or replace procedure job_proc is  

begin

insert into job_table (run_time) values (sysdate);  

end;  

create or replace procedure job_proc is

begin

insert into job_table (run_time) values (sysdate);

end;

3.创建job,并且指定为一分钟执行一次

Sql代码  

declare

job number;  

begin

dbms_job.submit(job, 'job_proc;', sysdate, 'TRUNC(sysdate,''mi'') + 1 / (24*60)');  

end/  

commit;  

declare

job number;

begin

dbms_job.submit(job, 'job_proc;', sysdate, 'TRUNC(sysdate,''mi'') + 1 / (24*60)');

end/

commit;

4.创建之后自动处于运行状态,我们查询job表,看看我们创建的job

Sql代码  

select job,broken,what,interval,t.* from user_jobs t;  

select job,broken,what,interval,t.* from user_jobs t;

job broken what interval ...

81 N job_proc; TRUNC(sysdate,'mi') + 1 / (24*60) ...

如何在oracle数据更新时自动执行java代码,谢绝使用监听器,抓包等功能,因为产生的数量实在太大。

写一个after update的trigger,再写一个存储过程,trigger调用存储过程,存储过程调用java程序。

----------------------------建立一个java存储过程

1. 先看一下这个目录

[oracle@ocean ~]$ pwd

/home/oracle

[oracle@ocean ~]$ ls -l

total 8

-rw-r--r-- 1 oracle orains 604 Dec 26 2006 bash

2. 连接到test用户

SQL conn test/test

Connected.

3. 授于test用户文件读写和执行命令的权限

SQLexec dbms_java.grant_permission('TEST','SYS:java.io.FilePermission','ALL FILES','read,write,execute,delete');

PL/SQL procedure successfully completed.

SQLexec dbms_java.grant_permission('TEST','java.lang.RuntimePermission','*','writeFileDescriptor' );

PL/SQL procedure successfully completed.

4. 建立java存储过程,注意,这里的exp 路径和dmp文件的路径是数据库服务器的路径

create or replace and compile java source named "aa"

as

import java.io.*;

import java.lang.*;

import java.util.*;

import java.sql.*;

import oracle.sql.*;

public class aa

{

public static void invoke_exe() throws IOException

{

Process p=Runtime.getRuntime().exec("/oracle/product/9.2.4/bin/exp userid=test/test file=/home/oracle/test.dmp");

try

{

p.waitFor();

}catch(InterruptedException ie){System.out.println(ie);}

}

}

/

Java created.

Elapsed: 00:00:00.01

5. 建立调用java存储过程的存储过程call_aa

create or replace procedure call_aa

as language java

name 'aa.invoke_exe()';

/

6. 执行java存储过程

exec call_aa;

7. 检查一下dmp文件是否已经生成

[oracle@ocean ~]$ pwd

/home/oracle

[oracle@ocean ~]$ ls -l

total 28

-rw-r--r-- 1 oracle orains 604 Dec 26 2006 bash

-rw-r--r-- 1 oracle orains 16384 Jul 3 14:12 test.dmp

-----------------

exec dbms_Java.Grant_Permission('TEST', 'java.io.FilePermission', 'ALL FILE', 'read ,write, execute, delete');

exec dbms_Java.Grant_Permission('TEST', 'java.io.FilePermission', 'd:aa.bat', 'read ,write, execute, delete');

exec dbms_java.grant_permission('TEST','java.lang.RuntimePermission','*','writeFileDescriptor' );

c#执行oracle里面的package是怎么实现的,要代码

代码如下:

CREATE OR REPLACE PACKAGE BODY Interface_PKG AS

PROCEDURE GetTableData(IN_WorkDate IN Date, IO_CURSOR OUT T_CURSOR) IS

V_CURSOR    T_CURSOR;

BEGIN

OPEN V_CURSOR FOR

select *

from 测试表

where workdate = IN_WorkDate;

IO_CURSOR := V_CURSOR;

End GetTableData;

END Interface_PKG;

扩展资料

PACKAGE分SPEC和body两部分:

1、SPEC是声明部分:

CREATE OR REPLACE PACKAGE FirstPage is

type outlist is ref cursor;

Procedure p_get( maxrow in number, minrow in number, return_list out outlist );

function f_get(str in varchar2)return varchar2;

END FirstPage;

2、BODY是功能实现部分:

CREATE OR REPLACE package body FirstPage is

Procedure p_get( maxrow in number, minrow in number, return_list out outlist )

is begin open return_list for

select * from (select a.*,rownum rnum from IPS_WL_INNOLUXPN a where rownum=maxrow) where rnum =minrow;

end ;

oracle 怎么运行SQl脚本

连接数据库SQL connect / as sysdba

运行脚本SQL @/admin/XX.sql 这里的/adminXX.sql 是绝对路径名, linux系统的话要注意 目录权限问题,windows就不用。


文章题目:oracle如何执行代码 oracle数据库代码执行
文章网址:http://myzitong.com/article/hpcehj.html