oracle如何执行文件 oracle怎么执行sql文件

在oracle 存储过程中,怎么执行bat文件

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

在巧家等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计制作、网站建设 网站设计制作按需规划网站,公司网站建设,企业网站建设,品牌网站制作,网络营销推广,外贸网站制作,巧家网站建设费用合理。

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

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

2. 建立java source

CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED "bb" as import java.io.*;

import java.lang.*;

import java.util.*;

import java.sql.*;

import oracle.sql.*;

public class bb

{

public static void invoke_exe() throws IOException

{

Process p=Runtime.getRuntime().exec("d:/exp_74.bat");--注意/符号

try

{

p.waitFor();

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

}

}

/

3. 建立调用java source的存储过程CALL_BB

create or replace procedure CALL_BB

as

language java

name 'bb.invoke_exe()';

/

4. 执行CALL_BB即可;

oracle怎么执行xml文件

create table inputfile (

filename varchar2(30),

xmlcontent  xmltype,

sqlcontent  varchar2(3000)

);

create or replace directory TESTFILE as 'D:\work\oralce\';

create or replace procedure alter_table (pi_file_name in varchar2)

is

filehandle utl_file.file_type; 

filebuffer varchar2(32767); 

l_clob     clob;

doc        DBMS_XMLDOM.DOMDocument;

CDATA      VARCHAR2(3000);

begin 

filehandle := utl_file.fopen('TESTFILE',pi_file_name,'R'); 

IF utl_file.is_open(filehandle) THEN 

dbms_output.put_line('file is open!'); 

END IF;

loop 

begin 

utl_file.get_line(filehandle,filebuffer); 

dbms_output.put_line(filebuffer); 

l_clob := l_clob||filebuffer;

EXCEPTION 

WHEN no_data_found THEN 

--dbms_output.put_line('EXCEPTION0:'||SUBSTR(SQLERRM, 1, 100));

exit;

WHEN OTHERS THEN 

dbms_output.put_line('EXCEPTION1:'||SUBSTR(SQLERRM, 1, 100));

end; 

end loop; 

--doc := DBMS_XMLDOM.newDOMDocument(xmltype.extract(XMLType(l_clob),'/sqls/sql'));

cdata:=xmltype.extract(XMLType(l_clob),'/sqls/sql').getClobVal();

insert into inputfile(FILENAME, XMLCONTENT,sqlcontent )

values(pi_file_name, XMLType(l_clob),replace(replace(replace(CDATA,'sql![CDATA[--',''),']]/sql',''),'/',chr(10)||'/'||chr(10)));

utl_file.fclose(filehandle);

IF utl_file.is_open(filehandle) THEN 

dbms_output.put_line('file is open!'); 

else 

dbms_output.put_line('file is close!'); 

END IF; 

EXCEPTION 

WHEN OTHERS THEN 

dbms_output.put_line('EXCEPTION2:'||SUBSTR(SQLERRM, 1, 100)) ; 

end; 

/

exec alter_table('myTable.xml');

sql语句会去inputfile.sqlcontent.

循环取出值,然后execute immediate(sql);

稍微做些微调即可。

oracle怎么用命令执行sql文件

Oracle执行外部文件:

c:sqlplus

user/pwd@db

sql@new.sql

执行多个sql文件:

1.把所有的文件都放在同一个目录下,然后在命令行里执行命令:

c:dir/b

d:/1.sql

会把所有的sql文件名都输出到一个sql文件中。

2.用UltraEdit打开生成的sql文件,alt+C切换到column

mode,给所有的行前都添加一个"@",保存。

3.在sqlplus中执行"@d:/1.sql"

如何避免''字符:

sql中可以传递参数,但有时需要插入'',例:

SQL

select

'hello'

v

from

dual;

输入

hello

的值:

hello

原值

1:

select

'hello'

v

from

dual

新值

1:

select

'hello'

v

from

dual

v

-----

hello

可以使用如下方法避免:

A:

SQL

select

chr(38)

||

'hello'

v

from

dual;

V

------

hello

B:

SQL

set

define

off

SQL

select

'hello'

v

from

dual;

V

------

hello


名称栏目:oracle如何执行文件 oracle怎么执行sql文件
文章分享:http://hbruida.cn/article/hpesjs.html