Chandra Bhushan
Chandra Bhushan

Reputation: 375

How to call a shell script from PLSQL program

Could you please let me know how to call a shell script from PLSQL program?

Upvotes: 9

Views: 20157

Answers (4)

Sankar R.K
Sankar R.K

Reputation: 77

Invoking a shell script from PL/SQL using DBMS_SCHEDULER: Please find the link below
http://www.dba-oracle.com/t_execute_shell_script_plsql_procedure.htm

Upvotes: 2

REW
REW

Reputation: 1247

Not listed above, but still applicable: C Code direct library from PL/SQL from Ask Tom. Obviously it would be an execution of a C Wrapper to call out to the Shell script.

Upvotes: 1

Harrison
Harrison

Reputation: 9100

And a forth way (on top of Pablo's) dbms_pipe


http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:16212348050

In Oracle7.0 and up, we can use dbms_pipes to talk to a daemon running outside the database. Here is a simple example that uses sqlplus to be the daemon:

create or replace procedure host( cmd in varchar2 )
as
    status number;
begin
    dbms_pipe.pack_message( cmd );
    status := dbms_pipe.send_message( 'HOST_PIPE' );
    if ( status <> 0 ) then raise_application_error( -20001, 'Pipe error' );
    end if;
end;
/

Upvotes: 3

Pablo Santa Cruz
Pablo Santa Cruz

Reputation: 181460

You have a couple of options available:

  1. Invoke a Java method from within a PL/SQL wrapper.
  2. Call a C program as an external procedure from within PL/SQL.
  3. Use the new DBMS_SCHEDULER package.

Here's a link with INFO on them.

Upvotes: 7

Related Questions