Start anothe program from PL/SQL

Hello,
I want to start a scanner via PL/SQL or APEX. How can I set a OS command?
Regards
Siegwin

3 basic options:
- external procedure (aka <i>ExtProc</i>)
- using DBMS_SCHEDULER
- Java stored proc
For an extproc example see {message:id=2271919}.
For a Java stored proc example see {message:id=1107330}.

Similar Messages

  • Calling java program from PL/SQL code

    Dear,
    How to develop and call a java program from PL/SQL code?
    What about if this program will call other java programs?

    Perhaps the Java Developer's Guide would be a good place to start
    http://download.oracle.com/docs/cd/B19306_01/java.102/b14187/toc.htm
    Justin

  • I want to submit a concurrent program from pl/sql. Please help me.

    Dear all,
    I want to submit a concurrent program from pl/sql. But I failed. Please help me.
    Detail:
    I create a concurrent program in 'Cash Management, Vision Operations (USA)' responsibility. <strong>And it be submitted success in EBS</strong>.
    Then
    I create a test script in pl/sql. And use 'FND_GLOBAL.APPS_INITIALIZE' to initialize ebs, then use 'FND_REQUEST.SUBMIT_REQUEST' to submit
    the consurrent program, But the procedure aways return <strong>0</strong>.
    I cannot found the reason. Please help me.Thanks.
    <em>Attached informations may describe the problem:
    1.The concurrenct submitted success in EBS.</em>
    request_id = 4750655 (Sorry, I dont know how to add pictures.)
    <em>2.The initialize informations which from SQL</em>.
    SELECT FCR.REQUESTED_BY USER_ID
    ,FCR.RESPONSIBILITY_ID
    ,FCR.RESPONSIBILITY_APPLICATION_ID
    ,FA.APPLICATION_SHORT_NAME
    ,FCP.CONCURRENT_PROGRAM_NAME
    FROM FND_CONCURRENT_REQUESTS FCR
    ,FND_APPLICATION FA
    ,FND_CONCURRENT_PROGRAMS FCP
    WHERE FCR.PROGRAM_APPLICATION_ID = FA.APPLICATION_ID
    AND FCR.CONCURRENT_PROGRAM_ID = FCP.CONCURRENT_PROGRAM_ID
    AND FCR.REQUEST_ID = 4750655;
    Result: user_id = 1318;
    responsibility_id = 50579;
    application_id = 260;
    application_short_name = 'CE';
    program_short_name = 'CALLK009';
    <em>3.The test script code.</em>
    <p>
    -- Created on 2008/10/22 by ERIC
    declare
    -- Local variables here
    Wv_conc_req_id VARCHAR2(10) DEFAULT NULL;
    BEGIN
    FND_GLOBAL.APPS_INITIALIZE(
    1318
    ,50579
    ,260
    Wv_conc_req_id := FND_REQUEST.SUBMIT_REQUEST(
    'CE'
    ,'CALLK009'
    ,NULL
    ,SYSDATE
    ,FALSE
    , CHR(0), CHR(0), CHR(0), CHR(0), CHR(0)
    , CHR(0), CHR(0), CHR(0), CHR(0), CHR(0)
    , CHR(0), CHR(0), CHR(0), CHR(0), CHR(0)
    , CHR(0), CHR(0), CHR(0), CHR(0), CHR(0)
    , CHR(0), CHR(0), CHR(0), CHR(0), CHR(0)
    , CHR(0), CHR(0), CHR(0), CHR(0), CHR(0)
    , CHR(0), CHR(0), CHR(0), CHR(0), CHR(0)
    , CHR(0), CHR(0), CHR(0), CHR(0), CHR(0)
    , CHR(0), CHR(0), CHR(0), CHR(0), CHR(0)
    , CHR(0), CHR(0), CHR(0), CHR(0), CHR(0)
    , CHR(0), CHR(0), CHR(0), CHR(0), CHR(0)
    , CHR(0), CHR(0), CHR(0), CHR(0), CHR(0)
    , CHR(0), CHR(0), CHR(0), CHR(0), CHR(0)
    , CHR(0), CHR(0), CHR(0), CHR(0), CHR(0)
    , CHR(0), CHR(0), CHR(0), CHR(0), CHR(0)
    , CHR(0), CHR(0), CHR(0), CHR(0), CHR(0)
    , CHR(0), CHR(0), CHR(0), CHR(0), CHR(0)
    , CHR(0), CHR(0), CHR(0), CHR(0), CHR(0)
    , CHR(0), CHR(0), CHR(0), CHR(0), CHR(0)
    , CHR(0), CHR(0), CHR(0), CHR(0), CHR(0)
    DBMS_OUTPUT.PUT_LINE(Wv_conc_req_id);
    COMMIT;
    end;
    <em>4.The concurrent program code.</em>
    create or replace package body CALLTEST is
    PROCEDURE T1(PvO_errbuf OUT VARCHAR2
    ,PvO_retcode OUT VARCHAR2)
    IS
    BEGIN
    FND_FILE.PUT_LINE(fnd_file.log, 'TEST');
    END;
    end CALLTEST;
    </p>

    Can you check from which schema you are executing FND_REQUEST? You can try as follows;
    Connect to your required schema, create a synonym on apps.fnd_request, connect from apps and finally execute grant all on apps.fnd_request to all.
    You can check for relevance from Doc ID: Note:147495.1
    Please do keep in the mind the soultion above should be applied to a test/dev EBS instance first.
    I hope this would be of help.
    Saad

  • Starting a program from the shell into a vncserver running on 5901

    I started a vncserver via `vncserver -geometry 1792x1008 -alwaysshared :1` and within it, I am running xfce4 just fine.  I would like to start a program from a shell outside of the vncserver.  I tried the following but got errors.  What am I missing?
    % DISPLAY=1.0 lxterminal
    (lxterminal:17489): Gtk-WARNING **: cannot open display: 1.0

    Try
    $ export DISPLAY=:1
    $ lxterminal
    That works over here.
    Last edited by mwillems (2015-04-21 00:03:43)

  • Call C++ programs from PL/SQL

    Can someone give me an example of how to call C++ programs from PL/SQL ASAP please?
    Thanks
    Chitra

    Hello,
    You can use External Procedure facility of of PL/SQL (Assuming your DB is 8 or 8i)
    Please refer the doc at http://oradoc.photo.net/ora8doc/DOC/server803/A54654_01/10_procs.htm
    James

  • Calling another program from the current program

    Hi all,
    In our requirement we are calling another program from our current program .
    In the current program( from which we are calling ) we are giving file name in the selection screen
    and when we run the current program we are successfully going to other program but our main requirement is to higlight the file name which we had given earlier .
    Note :  The called program doesnt have any selection screen.

    HI
    use EXPORT and IMPORT key words for passing data from one program to another program.
    as the called program is available in the same session you can use above key words which means you are accessing ABAP MEMORY.
    You can also use SET and GET key words which means SAP memory
    take F1 help there are examples tooo and detailes explanation abou the same
    Regards
    Ramchander Rao.K
    Edited by: Ramchander Krishnamraju on Dec 24, 2008 7:05 AM

  • Invoke Java Concurrent program from PL/ SQL

    Hi Experts,
    I 've a requirement to invoke a Java Concurrent program form PL/ SQL. I 've defined default values for some of the parameters in the Java Concurrent program definition and some parameters do not have a default value. I would like to provide only the mandatory attributes that do not have a default value set from my PL/ SQL code. Can you please suggest how this can be achieved?
    I tried giving null for those attributes. But, the java program takes a "" value instead of the default values. Any inputs here will be immensely helpful.
    Thanks,
    Ganapathi

    Updating the correct format to be used for reference:
    The correct format is:
    fnd_request.submit_request(
    application => 'PDT_CODE',
    program => 'PGM_NAME', --program IN varchar2 default NULL,
    start_time=> SYSDATE, --start_time IN varchar2 default NULL,
    sub_request => FALSE, --sub_request IN boolean default FALSE
    argument1 => rowdata,
    argument2 => xxx
    Note: the parameter name should be "argument1...n" (and not the actual argument name).
    But I noticed that for parameters that are missed out, the default values still do not take effect. Can anyone please confirm this behavior?
    Thanks,
    Ganapathi

  • How to call  Screen in another program from exsisting program

    Hello Frieds,
    Can any one help me how to call  a screen  in another program (Say "test2") from exsisting program(say "test1')
    If above case is possible then how to access the fields in the target screen?
    Your responce is greatly appreciated.
    Best Regards,
    Rakesh

    Hi Rakesh,
    If you wish to use ONLY the screen of another program, call transaction  will not help you, because the called transaction will be fully executed (and not only the screen), and the acess to screen field wil be difficult.
    When you wish to access the same screen from more than one program, you can create this screen in a function module and in this way you can call the function (to display the screen) in many programs.
    Best regards,
    Leandro Mengue

  • How to call another program from LabVIEW?

    Hi!
    Is there anyone that can answer my question? I have found a similar thread where the user needed to call labVIEW from some program but I want to do the opposite.
    I made a program in labVIEW that communicates via COM-ports (serial communication) with the processor I use at the job (Ubicom´s IP2022).
    Now I want to add more funcionality to this program. I want to be able to program re-program IP2022 through this LabVIEW application.
    The programming is done via an Ethernet-dongle. I start a program called IP2kProg, I write the ip-address of the dongle and the program-file (.elf) downloads at this address. But how can I do this from
    LabVIEW, do I need to open IP2kProg or can I send some values to it via LabViEW?
    Ant suggestions?
    Thanks, Amir

    Amir,
    There are couple of options:
    1.  If your IP2kProg program has a command-line interface, you can use LabVIEW's System Exec.vi and send the commands and parameters to it. 
    2.  If the IP2kProg has an API / exported functions, you can call them from LabVIEW using the Call Library Function Node. 
    Hope this gives you some ideas. 
    -Khalid

  • Can I call a Java program from a SQL Server Trigger?

    Hello,
    I want to encrypt some data in a database column in SQL Server. Today I am using java code to encrypt the value and store it in the database using JDBC.
    Now I want to use a VB client to store the encrypted value in the SQL Server DB. Since the encryption is handled by a java class, can I write a trigger in SQL Server that while inserting the raw data, calls the java class for encrypting the value and then inserts the encrypted value into the column?
    In general, is it possible to call a java class from a SQL Server trigger?
    Thanks
    Bipin

    Here are 3 examples of code for insert, update and delete:
    CREATE TRIGGER [PLI_INSERT_TRIGGER] ON [dbo].[PLI]
    FOR INSERT
    AS
    Declare @cmd sysname, @code sysname, @list sysname
         Select @code = PLI_K_COD, @list = PLI_K_LISTINO from inserted
         Set @cmd = 'java mirrorDb.Copy PLI INSERT ' + @code + ' ' + @list
         EXEC master..xp_cmdshell @cmd
    CREATE TRIGGER [PLI_UPDATE_TRIGGER] ON [dbo].[PLI]
    FOR UPDATE
    AS
    Declare @cmd sysname, @code sysname, @list sysname
         Select @code = PLI_K_COD, @list = PLI_K_LISTINO from inserted
         Set @cmd = 'java mirrorDb.Copy PLI UPDATE ' + @code + ' ' + @list
         EXEC master..xp_cmdshell @cmd
    CREATE TRIGGER [PLI_DELETE_TRIGGER] ON [dbo].[PLI]
    FOR DELETE
    AS
    Declare @cmd sysname, @code sysname, @list sysname
         Select @code = PLI_K_COD, @list = PLI_K_LISTINO from deleted
         Set @cmd = 'java mirrorDb.Copy PLI DELETE ' + @code + ' ' + @list
         EXEC master..xp_cmdshell @cmd
    you must go "sql server entreprise manager" right click on the table you want to add triggers and select: all activities, manage triggers.
    You have 3 examples: for an insert, for an update and for a delete
    ON [dbo].[PLI] specify the table on which you want to setup trigger.
    FOR DELETE, INSERT, UPDATE specify the event.
    The Declare statement create the variables in which I want to put some values to pass to the java program, for example which table, which event, which key fields.
    the "Select @code = PLI_K_COD, @list = PLI_K_LISTINO from inserted" set the variables with the value of the columns of the table I am interested to read from my java program, for example the variable @code receive the value of the column pli_k_kod (is the key) of the table PLI.
    The "Set @cmd = 'java mirrorDb.Copy PLI DELETE ' + @code + ' ' + @list " prepared the variable @cmd with the java command followed by the package.classname and parameters.
    The EXEC launch the command to the operating system.
    Daniele

  • Calling Cobol program from PL/SQL

    What is the caling convention for PL/SQL to call a Cobol program?

    You cannot do it directly from PL/SQL. PL/SQL is.. well, kind of abstract ito the actual platform it runs on. PL/SQL cannot talk directly to operating system. It cannot (itself) do socket calls, file I/O calls, use the printer, etc.
    <p>
    All this has to be done using a lower level implementation library - like UTL_FILE for example that wraps internal C written modules that does file I/O. PL/SQL can call these to do I/O on its behalf. Ditto for wrappers like UTL_TCP and others.
    <p>
    There is no default wrapper for calling external processes from PL/SQL. It can however be done indirectly using the external procedure (EXTPROC) feature, or using Java to do it.
    <p>
    The latter is the easiest. You create a Java stored proc that can access the operating system and run external programs and commands. You punch a big hole in the Oracle Java security to allow this Java stored proc access to the operating system. Next you create a PL/SQL wrapper for this Java proc which then in turn can be called from PL/SQL.
    Just remember that you MUST secure this hole you've punched into Oracle security. If any Oracle user can access this PL/SQL wrapper, they can hack, compromise, trash or simply destroy your entire Oracle account on that server.
    Here is the basic code:
    create or replace and compile Java Source named "OSCommand" as
    -- java:        OS COMMAND
    -- descr:       Executes an Operating System Command using the JAVA RTS
    -- IN parameter:        os command to execute (including fully qualified path names)
    -- OUT parameter:       returncode [\nstring]
    --                      where string a max of 32000 chars of the output of the command
    --                      (note that \n is used as separators in the string)
    --                      returncode=-1   Java RTS error occurred (e.g. command does not exist)
    --                      returncode=255  o/s command failed (e.g. invalid command params)
    import java.io.*;
    import java.lang.*;
    public class OSCommand{
            public static String Run(String Command){
                    Runtime rt = Runtime.getRuntime();
                    int     rc = -1;
                    try{
                            Process p = rt.exec( Command );
                            int bufSize = 32000;
                            int len = 0;
                            byte buffer[] = new byte[bufSize];
                            String s = null;
                            BufferedInputStream bis = new BufferedInputStream( p.getInputStream(), bufSize );
                            len = bis.read( buffer, 0, bufSize );
                            rc = p.waitFor();
                            if ( len != -1 ){
                                    s = new String( buffer, 0, len );
                                    return( s );
                            return( rc+"" );
                    catch (Exception e){
                            e.printStackTrace();
                            return(  "-1\ncommand[" + Command + "]\n" + e.getMessage() );
    show errors
    create or replace function OSexec( cCommand IN string ) return varchar2 is
    -- function:    OS EXEC
    -- descr:       PL/SQL wrapper for the Java OSCOMMAND stored proc
    language        JAVA
    name            'OSCommand.Run(java.lang.String) return java.lang.String';
    show errors
    -- Punching a hole into the Java VM sandbox. The following must be run as
    -- sysdba. Substitute SCOTT with the applicable schema that owns the OSEXEC
    -- and OSCOMMAND stored procs.
    declare
            SCHEMA  varchar2(30) := 'SCOTT';
    begin
            dbms_java.grant_permission(
                    SCHEMA,
                    'SYS:java.io.FilePermission',
                    '<<ALL FILES>>',
                    'execute'
            dbms_java.grant_permission(
                    SCHEMA,
                    'SYS:java.lang.RuntimePermission',
                    'writeFileDescriptor',
            dbms_java.grant_permission(
                    SCHEMA,
                    'SYS:java.lang.RuntimePermission',
                    'readFileDescriptor',
    commit;
    end;
    -- example: running the Unix/Linux date command to get the current date and time
    SQL> select OSexec('/usr/bin/date') as STDOUT from dual;
    STDOUT
    Fri Sep  1 08:09:34 SAST 2006
    1 row selected.
    SQL>Edited by: Billy Verreynne on Sep 4, 2008 6:26 PM to make the code snippet readable with the new Jive forum s/w.

  • Calling external program from PL/SQL

    Does anyone know whether it's possible to call an external program living outside of Oracle from PL/SQl eg. a from a stored procedure?
    Specifically i want to call back into my java appserver (ejb server) when a trigger/stored proc. is executed.
    The call does not have to be synchronous, some sort of queue will do - eg JMS??
    Any help greatly appreciated.
    null

    Hi
    Which version of oracle you are using.
    If it 8i, you can use external procedures/libraries. REfer to ORacle PLSQL documentation.
    If you are using Oracle 7+ you can use dbms pipes to post your command string and a cron job to read the pipe and execute the string.
    An alternate ugly way is to write to a file and some process reading the file at a regular interval.
    HTH
    Arvind Balaraman

  • Scenario to call c programs from pl/sql

    I know that c routines can be called from Oracle pl/sql. But, I would like to know that anybody has the realtime scenario where it is unavoidable.
    Please let me know if anybody has any specific scenarios.
    Thanks in advance
    Sudhir

    There are numerous scenarios - as Oracle is operating system agnostic (mostly) and do not provide numerous 3rd party interfaces.
    For example, you want to use MAPI (Microsoft's <i>Mail API</i>). You can write a C dll that provides an easy and basic interface into MAPI - and then define this C dll as external procedure that enables you to perform PL/SQL calls to logon to a Microsoft Exchange Server, verify and get users, send mail, enumerate the contents of a mail box's folder, read a mail, and so on.
    Or something more complex. Oracle is used by an application server that provides automated telephonic call centre support. You know - the automated system that answers your support call, asks numerous questions, gets input from you and attempts to troubleshoot your problem. Modern systems like these use speech recognition interfaces - where the caller can (using plain English) state the problem, instead of pushing tone buttons on the phone.
    Such a system will need XML templates defining the speech recognition interface context - these templates with define the basic sentence structures the caller will use, words used, assign values to the words for processing and so on. These XML templates (together with the troubleshooting data and rules) can be stored in Oracle.
    One function needed will be to verify the XML template with the speech recognition system used. Again, this can be done from PL/SQL. When a new template is entered into the database, PL/SQL can make an external proc call to a C dll that interfaces with SAPI v5 (Microsoft's <i>Speech API</i>) to compile the XML template and determine whether it is valid or not.
    There are literally 1000's upon 1000's of such scenarios that requires one to call external services and interfaces from PL/SQL - and the external proc feature of Oracle is often the technical solution that can be used to address the requirement.

  • Calling java program from PL/SQL

    I already have a java program that encrypts/decrypts data.
    How can I use or rather call this program in PL/SQL?

    Please refer [url http://download-west.oracle.com/docs/cd/B19306_01/appdev.102/b14261/subprograms.htm#sthref1814]Calling External Subprograms on PL/SQL User's Guide and Reference.

  • Opening and manipulating another program from an application or script

    Hello all,
    I'm trying to create a prototype of a portable input device for a computer. The idea is that the input device allows the same input as a normal wireless pen tablet, but augmented with special features, which could (for example) open programs and switch between them.
    Now our current idea is to use a second monitor to run our mockup interface on. So basically an application of some sort that has a rectangular part to serve as the pen input area and some buttons alongside it for the extra functionality.
    Now for the questions: is it possible to open and interact with programs on the mac through another application? Would Applescript or a Cocoa application be able to this?

    Hi Spacy, and welcome to the Dev Forums!
    SpacyRicochet wrote:
    is it possible to open and interact with programs on the mac through another application?
    Yes.
    Would Applescript or a Cocoa application be able to this?
    Both.
    However, opening another app and interacting with it are two different topics. In general, you'll always be able to open another app. But except for privileged programs such as debuggers, you can't expect to do much else with another app unless it wants you to. In other words, if you programmed the other app, you'll be able to control and interact with it anyway you want from either Applescript or a Cocoa app. But if the app doesn't support Apple Events or any other kind of interprocess communication (IPC), you may not be able to do much except open and close it.
    Here are some links that might be useful to you:
    [Introduction to AppleScript Overview|http://developer.apple.com/mac/library/documentation/AppleScript/Conce ptual/AppleScriptX/AppleScriptX.html#//apple_ref/doc/uid/10000156-BCICHGIE]
    [Introduction to Cocoa Scripting Guide|http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/Scr iptableCocoaApplications/SAppsintro/SAppsIntro.html#//appleref/doc/uid/TP40001982-BCICHGIE]
    [NSWorkspace Class Reference|http://developer.apple.com/mac/library/documentation/Cocoa/Reference/ ApplicationKit/Classes/NSWorkspaceClass/Reference/Reference.html#//appleref/doc/uid/TP40004153]
    [Getting the main window of an app via an NSRunningApplication instance|http://stackoverflow.com/questions/1981453/getting-the-main-window-of- an-app-via-an-nsrunningapplication-instance]
    Hope that helps!
    \- Ray

Maybe you are looking for