Executing SQLDR command in procedure

please tell me the error in the following code
create or replace procedure alltables as
begin
execute immediate ' host sqlldr etl/bi123@citilcmi data=D:\final\fmo.csv control=D:\final\fmo.ctl;';
end;
when i create the procedure it is creating.
But when i execute it is giving the following error. But it is working fine when i execute the same code in SQL prompt
ERROR at line 1:
ORA-00900: invalid SQL statement
ORA-06512: at "ETL.ALLTABLES", line 4
ORA-06512: at line 1

HOST command can't be used in Pl/Sql, it's a Sql*Plus command. Dynamic Sql is only suitable for Sql commands.
Depending on your Oracle version you can use DBMS_SCHEDULER (10g) or Java/C external procedures (9i and older).

Similar Messages

  • How to execute unix command from ODI Procedure

    Hi,
    I am trying to execute below unix command from ODI Procedure (Command on Target tab) but I am getting the error "java.io.IOException: Cannot run program "cd": error=2, No such file or directory" but when I try to execute the same command using OdiOSCommand, it is executing successfully. I don't want to use shell script to execute this command. Is there any specific syntax am I missing to execute this command from ODI procedure?
    cd /project3/tmt/;ls *.dmp > dmplist.lst
    Please help me on this...
    Thanks
    MT

    Hi nahlikh,
    Thank you for the reply.
    I used below command in Procedure but still getting the same error as "java.io.IOException: Cannot run program "OdiOSCommand": error=2, No such file or directory".
    OdiOSCommand "-COMMAND=cd /project3/tmt/;ls *.dmp > dmplist.lst"
    as I mentioned earlier if I use the command cd /project3/tmt/;ls *.dmp > dmplist.lst in OdiOSCommand tool it is executing successfully without any issues.
    any thoughts appreciated to get a solution for this issue.
    Thanks
    MT

  • OS Commands not executing through published java procedure... :(

    Hello all :)
    Im trying to get a PL/SQL block to delete a file out in the OS. Theres plenty of examples out there and the one I got came from burleson consulting, and incorporates a java method and a call to java wrapped in PL/SQL.. after all suggested grants, using the procedure yields no result. Here is the source code
    -- java procedure used to execute OS command
    CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED "Host" AS
    import java.io.*;
    public class Host {
    public static void executeCommand(String command) {
    try {
    String[] finalCommand;
    if (isWindows()) {
    finalCommand = new String[4];
    finalCommand[0] = "C:\\WINDOWS\\system32\\cmd.exe";
    finalCommand[1] = "/y";
    finalCommand[2] = "/c";
    finalCommand[3] = command;
    else {
    finalCommand = new String[3];
    finalCommand[0] = "/bin/sh";
    finalCommand[1] = "-c";
    finalCommand[2] = command;
    final Process pr = Runtime.getRuntime().exec(finalCommand);
    new Thread(new Runnable() {
    public void run() {
    try {
    BufferedReader br_in = new BufferedReader(new
    InputStreamReader(pr.getInputStream()));
    String buff = null;
    while ((buff = br_in.readLine()) != null) {
    System.out.println(buff);
    try {Thread.sleep(100); } catch(Exception e) {}
    br_in.close();
    catch (IOException ioe) {
    System.out.println("Exception caught printing process output.");
    ioe.printStackTrace();
    }).start();
    new Thread(new Runnable() {
    public void run() {
    try {
    BufferedReader br_err = new BufferedReader(new
    InputStreamReader(pr.getErrorStream()));
    String buff = null;
    while ((buff = br_err.readLine()) != null) {
    System.out.println(buff);
    try {Thread.sleep(100); } catch(Exception e) {}
    br_err.close();
    catch (IOException ioe) {
    System.out.println("Exception caught printing process error.");
    ioe.printStackTrace();
    }).start();
    catch (Exception ex) {
    System.out.println(ex.getLocalizedMessage());
    public static boolean isWindows() {
    if (System.getProperty("os.name").toLowerCase().indexOf("windows") != -1)
    return true;
    else
    return false;
    -- PL/SQL wrapper to publish java method.
    CREATE OR REPLACE PROCEDURE host_command (p_command IN VARCHAR2)
    AS LANGUAGE JAVA
    NAME 'Host.executeCommand (java.lang.String)';
    these are the grants I am issuing on install:
    BEGIN
    DBMS_JAVA.grant_permission ('LOANADMIN', 'java.io.FilePermission',
    '<>', 'read ,write, execute, delete');
    DBMS_JAVA.grant_permission ('LOANADMIN', 'SYS:java.lang.RuntimePermission',
    'writeFileDescriptor', '');
    DBMS_JAVA.grant_permission ('LOANADMIN', 'SYS:java.lang.RuntimePermission',
    'readFileDescriptor', '');
    END;
    -- and this is the block I am using to execute the OS command..
    1 BEGIN
    2 host_command (p_command => 'DEL C:\PRETEND.TXT');
    3* END;
    SQL> /
    PL/SQL procedure successfully completed.
    Everything returns as successfully completed. But the file is not deleted from the server. I know im missing some kind of privilege. Can anyone help me? Thanks
    Mo

    Burleson consulting...
    Says it all. Exposure on the Net doesn't mean quality.
    Burleson code usually has not been tested, is not robust, and quite often doesn't work.
    Why didn't you implement run_cmd, as suggested earlier?
    THAT works!
    Sybrand Bakker
    Senior Oracle DBA

  • Executing OS command from sql procedure

    i want to execute an OS command from the procedure, can i do this way? looks like it is not executing the command move....
    declare
    begin
    dbms_output.put_line(' moving...');
    host;
    move c:\file1\test.txt C:\moved
    exit;
    /

    True. But that job is going to run in a separate session, some time after the current transaction commits (depending on the number of jobs queued up to run). So if you need to pass information back from the job, or you want the procedure to handle exceptions thrown by the job, or you want to tie job related failures back to a particular application level event, or you want the rest of your procedure to wait for the operating system command to finish, using the DBMS_SCHEDULER for this sort of thing is going to require a fair amount of additional coordination/ monitoring/ infrastructure code. It's certainly not a Herculean task to write that additional code, and it's reasonable in some situations, but the Java stored procedure approach strikes me as substantially easier to deal with in most cases.
    Justin

  • Issue with Executing OS commands from Stored Procedure

    I am trying to execute the scripts provided at :
    http://github.com/xtender/XT_SHELL
    provided by xtender user.
    As required, I have asked my DBAs to grant privileges by executing the following scripts:
    Begin
      --change to needed permissions and execute
      dbms_java.grant_permission( 'ODS', 'SYS:java.io.FilePermission', '/var/factiva/ODS/bin/CVIM_Rpt_ExportCSVFile’, 'read,write,execute' );
    end;
    /where CVIM_Rpt_ExportCSVFile is my script residing in the Unix server where my Oracle is installed.
    The error I am facing when I try to execute the following command is:
    select * from table(xt_shell.shell_exec('/var/scripts/CVIM_Rpt_ExportCSVFile',100))
    Exception:the Permission (java.io.FilePermission /var/scripts/CVIM_Rpt_ExportCSVFile execute) has not been granted to ODS. The PL/SQL to grant this is dbms_java.grant_permission( 'ODS', 'SYS:java.io.FilePermission', '/var/scripts/CVIM_Rpt_ExportCSVFile', 'execute' )I have asked my DBA to also execute the following scripts: - But I still see the same error as above. I am not able to figure out whats going on. Can anyone pls help me out??
    EXEC Dbms_Java.Grant_Permission('ODS', 'SYS:java.lang.RuntimePermission', 'writeFileDescriptor', '');
    EXEC Dbms_Java.Grant_Permission(ODS', 'SYS:java.lang.RuntimePermission', 'readFileDescriptor', '');
    dbms_java.grant_permission( 'ODS', 'SYS:java.io.FilePermission', '/var/scripts/CVIM_Rpt_ExportCSVFile', 'execute' )

    DUPLICATE
    ===============================================================
    Issue with Executing OS commands from Stored Procedure
    ==============================================================

  • Getting an error while executing ddl commands using dblink

    Hi,
    i am using Oracle9iR2 Version.
    i have created a procedure like below to execute ddl commands on remote database through dblink using dbms_sql.
    CREATE OR REPLACE PROCEDURE run_remote_ddl (p_dblink VARCHAR2, qry VARCHAR2)
    AS
    c_handle NUMBER;
    feedback INTEGER;
    stat VARCHAR2 (2000);
    BEGIN
    stat := 'select DBMS_SQL.open_cursor' || p_dblink || ' from dual';
    EXECUTE IMMEDIATE stat
    INTO c_handle;
    stat :=
    'begin DBMS_SQL.parse'
    || p_dblink
    || ' ('
    || c_handle
    || ','''
    || qry
    || ''', DBMS_SQL.v7); end;';
    EXECUTE IMMEDIATE stat;
    stat :=
    ' select DBMS_SQL.EXECUTE' || p_dblink || '(' || c_handle
    || ') from dual';
    EXECUTE IMMEDIATE stat
    INTO feedback;
    stat :=
    'declare x integer; begin x:= :1; DBMS_SQL.close_cursor'
    || p_dblink
    || '(x); end;';
    EXECUTE IMMEDIATE stat
    USING c_handle;
    END;
    when i run this procedure like below
    begin
    run_remote_ddl ('@dblink', 'create table scott.ttt(num number)');
    end;
    got an error:
    ORA-06553: PLS-103: Encountered the symbol ".2" when expecting one of the following:
    . ( * @ & = - + ; < / > at in is mod not rem
    <an exponent (**)> <> or != or ~= >= <= <> and or like
    between ||
    The symbol ". was inserted before ".2" to continue.
    ORA-06512: at RUN_REMOTE_DDL", line 9
    ORA-06512: at line 2
    Please tell me how to resolve this.
    Thanks in advance.

    Hi,
    >
    ORA-06553: PLS-103: Encountered the symbol ".2" when expecting one of the following:
    . ( * @ & = - + ; < / > at in is mod not rem
    <an exponent (**)> or != or ~= >= <= <> and or like
    between
    >
    Hope you are not typing 2 instead of @ as both are on the same key
    Can you run the following and see what is happening
    CREATE OR REPLACE PROCEDURE run_remote_ddl (p_dblink VARCHAR2, qry VARCHAR2)
    AS
    c_handle NUMBER;
    feedback INTEGER;
    stat VARCHAR2 (2000);
    BEGIN
    dbms_output.put_line(p_dblink);
    stat := 'select DBMS_SQL.open_cursor@dblink from dual';
    --stat := 'select DBMS_SQL.open_cursor from dual';
    EXECUTE IMMEDIATE stat
    INTO c_handle;
    END;
    exec run_remote_ddl('@dblink', 'create table scott.ttt(num number)');Regards
    Edited by: yoonus on Feb 20, 2013 3:47 AM

  • How to execute unix command through odi and store the result in table

    I have to reconcile  if data is loaded in table from csv file or not . I have to create a oracle data integrator package/interface/procedure to execute unix command to count number of rows in the csv files and store the count result in a table then i have to query the loaded table and count number of rows there and store in the table and have to compare is counts are same or not,  Please assist me how to make package/interface/procedure to  execute unix command and store result in oracle table.
    Thanks in Advance

    Use ODI OS command tool in the ODI package.
    create an interface in ODI using LKM File to Sql and the output file generated with the csv file's row count as a source and the db table(where the count needs to be stored) as a target

  • What are the steps necessary to allow a single user login the ability to execute a single stored procedure and nothing else.

    Hello,
    I have a request to create a user login and restrict that user to only be able to execute a single stored procedure.
    Is this possible using only TSQL commands? 
    Am i on the right track here?
    USE MyDatabase
    GO
    CREATE LOGIN [mylogin] DEFAULT_DATABASE = [MyDatabase], CHECK_POLICY = OFF, CHECK_EXPIRATION = OFF
    GO
    CREATE ROLE exec_single_proc_role
    GO
    exec sp_addrolemember 'exec_single_proc_role', 'mylogin'
    GO
    CREATE SCHEMA [restricted] AUTHORIZATION mylogin
    GO
    GRANT EXECUTE ON SCHEMA::restricted TO exec_single_proc_role
    GO

    Thanks for the reply.
    This particular user should need to be able to Alter, Execute, and View the stored procedure as well.
    Here is what i ended up with:  Any improvement are appreciated.  Thanks
    USE MyDatabase
    GO
    --DROP SCHEMA
    IF EXISTS (SELECT * FROM sys.schemas WHERE name = N'restricted')
    DROP SCHEMA [restricted]
    GO
    --DROP SERVER WIDE LOGIN
    IF EXISTS (SELECT * FROM sys.server_principals WHERE name = N'MyUserLogin')
    DROP LOGIN [MyUserLogin]
    GO
    --CREATE SERVER WIDE LOGIN
    CREATE LOGIN [MyUserLogin] WITH PASSWORD = 0x0100F1CF6792E602EF40DFF55983FDE81A9 HASHED, SID = 0xC33B04EECE59DC4C95BE66ED9B15D13D, DEFAULT_DATABASE = [MyDatabase], CHECK_POLICY = OFF, CHECK_EXPIRATION = OFF
    GO
    --DROP ROLE
    DECLARE @RoleName sysname
    set @RoleName = N'exec_single_proc_role'
    IF EXISTS (SELECT * FROM sys.database_principals WHERE name = @RoleName AND type = 'R')
    Begin
    DECLARE @RoleMemberName sysname
    DECLARE Member_Cursor CURSOR FOR
    select [name]
    from sys.database_principals
    where principal_id in (
    select member_principal_id
    from sys.database_role_members
    where role_principal_id in (
    select principal_id
    FROM sys.database_principals where [name] = @RoleName AND type = 'R' ))
    OPEN Member_Cursor;
    FETCH NEXT FROM Member_Cursor
    into @RoleMemberName
    WHILE @@FETCH_STATUS = 0
    BEGIN
    exec sp_droprolemember @rolename=@RoleName, @membername= @RoleMemberName
    FETCH NEXT FROM Member_Cursor
    into @RoleMemberName
    END;
    CLOSE Member_Cursor;
    DEALLOCATE Member_Cursor;
    End
    IF EXISTS (SELECT * FROM sys.database_principals WHERE name = N'exec_single_proc_role' AND type = 'R')
    DROP ROLE [exec_single_proc_role]
    GO
    --DROP USER
    IF EXISTS (SELECT * FROM sys.database_principals WHERE name = N'MyUserLogin')
    DROP USER [MyUserLogin]
    GO
    --CREATE USER AND ASSIGN DEFAULT SCHEMA
    CREATE USER [MyUserLogin] FOR LOGIN [MyUserLogin] WITH DEFAULT_SCHEMA=[restricted]
    GO
    --CREATE SCHEMA
    CREATE SCHEMA [restricted] AUTHORIZATION [MyUserLogin]
    GO
    --CREATE ROLE
    CREATE ROLE [exec_single_proc_role] AUTHORIZATION [MyUserLogin]
    GO
    --ADD ROLE
    EXEC sp_addrolemember 'exec_single_proc_role', [MyUserLogin]
    GO
    GRANT EXECUTE ON SCHEMA::[restricted] TO [exec_single_proc_role]
    GO
    GRANT EXECUTE ON OBJECT::[dbo].[MyStoredProcedure] TO [MyUserLogin]
    GO

  • Runtime.exec not executing the command !

    Hi all,
    I'm connecting to Progress Db thru JDBC trying to execute a stored procedure
    which has a statement
    Runtime.exec("ksh -c aa") where aa is aunix script which i'm trying to run from java snippet .
    when i run this code as a seperate java program it executes the script
    "aa" but thru JDBC connection it does not execute the command
    what could be the reason ???
    thanx in advance,
    Nagu.

    Hi Rick,
    "aa" is the shell script which is lying in the user DIR .
    It is returning a non-zero value. what kind of permissions be there for to execute the Shell command?
    Regards,
    Nagarathna.

  • Executing an oracle stored procedure in xMII 11.5

    Dear all,
          I am facing problem executing an oracle stored procedure using sql query in MII. The SP does not have any input or output parameters & consists of only 2 insert statements. I tried to use Command Mode, FixedQuery & FixedQuery With output mode, but the SP doesn't run.
    This is the error i get when i use :
    execute InsertTest or exec InsertTest -  A SQL Error has occurred on query, ORA-00900: invalid SQL statement
    I read in one of the posts to use 'CALL' instead of 'exec' or 'execute'. Even with this i get error which states:
    A SQL Error has occurred on query, ORA-06576: not a valid function or procedure name
    The syntax i used is CALL InsertTest  -  'InsertTest' is the SP name.
    I also checked Sam's comment in one of the posts about jdbc driver. We are using oracle 9i, so i guess there is no problem with the version of DB.
    The stored procedure is working fine in SQL Developer, How else can i invoke the SP in MII?
    Any help would be greatly appreciated.
    Thanks,
    Sushma.

    Hi all,
    for insert create procedure
    CREATE PROCEDURE MII_TEST_INSUPD
    (ID_IN IN NUMBER,
    NAME_IN IN VARCHAR2)
    IS
    BEGIN
      -- UPDATE ROW
      UPDATE TEST SET
              NAME = NAME_IN
      WHERE
              ID = ID_IN;
      -- NOT RETURN INSERT NEW LINE IN TABLE
      IF SQL%ROWCOUNT = 0 THEN
         INSERT INTO TEST (ID, NAME) VALUES (ID_IN, NAME_IN);                        
      END IF; 
    END;
    In MII you create a query template
    Mode - Command
    FixedQuery - insert the code below
    CALL MII_TEST_INSUPD ([Param.1],'[Param.2]')
    for returns the grid using procedures in oracle you need create a package on oracle server
    CREATE PACKAGE PKG_test IS
      TYPE cursortype is ref cursor;
      PROCEDURE test (mycursor in out cursortype);
    END PKG_test;
    CREATE PACKAGE BODY PKG_test IS
      PROCEDURE test (mycursor in out cursortype) AS
      BEGIN
         open mycursor for select * from test;
      END;
    END PKG_test;
    In MII you create a query template
    Mode -  FixedQueryWithOutput
    FixedQuery - insert the code below
    CALL PKG_TEST.TEST(?)
    Danilo

  • Put the query result of "EXECUTE IMMEDIATE" command in a local table

    Hi all.
    Is it possible to put the output of the "EXECUTE IMMEDIATE" command in a local table so that the ouput can be accessed through other procedures.
    Regards,
    Andila

    Hi Andila, well you could just make your dynamic sql statement an insert statement based on your select. See example below
    create column table test_table_1
    "COL1" nvarchar(10),
    "COL2" nvarchar(10)
    CREATE PROCEDURE INSERT_P() 
    LANGUAGE SQLSCRIPT AS 
      sql_string NVARCHAR(2000) := '';
    BEGIN 
      sql_string := 'insert into test_table_1 (select ''val1'', ''val2'' from dummy) ';
      EXECUTE IMMEDIATE (:sql_string); 
    END; 
    call insert_p();
    select * from test_table_1;
    However you may want to investigate other options instead of using dynamic SQL as this is not a recommended approach. Less optimized compared to standard sql.
    Peter

  • CAN USE COPY COMMAND INSIDE PROCEDURE BODY

    Hi all
    can we use COPY command inside procedure body like this
    CREATE OR REPLACE procedure USER2.PRO1
    Begin
    execute immediate'copy from hr/hr@ERP to USER21/PASS@DB1 append user2.per_images using select * from hr.per_images';
    commit;
    end;
    YOU ADVICE PLEASE

    My advice is to check the manual.
    SQL*Plus COPY command
    http://download.oracle.com/docs/cd/B28359_01/server.111/b31189/ch12016.htm#i2675035
    SQL manual index
    http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/index.htm
    PL/SQL manual index
    http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28370/index.htm
    CTRL-F on the last two for COPY and it appears not.

  • Executing create or replace procedure statement from plsql script

    Hi ,
    I want to execute create or replace procedure from pl/sql block without using execute immediate or dbms_sql, please let me know if feasible.
    Eg:
    declare
    begin
    create or replace procedure .....
    if v_temp = 4 then
    end if;
    end;
    Thanks for help.
    Regards,
    RK

    user588487 wrote:
    Actual requirement is I have .sql file which has Create procedure command in it
    and i have to conditionally execute the above .sql file so going for a pl/sql block.
    Eg:
    begin
    if variable1 <> variable2 then
    @xyz.sql -- contains create or replace procedure statement
    insert into tablexyz.....
    end if;
    end;
    Won't work. The PL/SQL code block (also called an anonymous block) is shipped from the client (e.g. SQL*Plus) to the database server. There it is parsed and executed.
    It cannot execute SQL*Plus code.
    There are 2 basic approaches to address this requirement.
    Method 1. Use PL/SQL and SQL to perform the conditional logic checks that SQL*Plus cannot. Use bind variables to "copy" the results between SQL*Plus and PL/SQL, use substitution variables to execute the conditional branch (as a script) in SQL*Plus.
    Basic example:
    SQL> --// bind variable for passing data to PL/SQL code and
    SQL> --// to receive data from PL/SQL code
    SQL> var status varchar2(100)
    SQL>
    SQL> declare
      2          function ExistsTable( tableName varchar2 ) return boolean is
      3                  i       integer;
      4          begin
      5                  select 1 into i
      6                  from    user_objects
      7                  where   object_type = 'TABLE'
      8                  and     object_name = tableName;
      9                  return( true );
    10          exception when NO_DATA_FOUND then
    11                  return( false );
    12          end;
    13  begin
    14          --// determine if table exists
    15          if not ExistsTable( 'FOOTAB' ) then
    16                  --// table does not exists and SQL*Plus client
    17                  --// needs to run the footab client script
    18                  :status := 'footab.sql';
    19          else
    20                  :status := 'do-nothing.sql';
    21          end if;
    22  end;
    23  /
    PL/SQL procedure successfully completed.
    SQL>
    SQL> --// use a substitution variable to determine what to do
    SQL> set define on
    SQL> col STATUS new_value SCRIPT
    SQL> select :status as STATUS from dual;
    STATUS
    footab.sql
    SQL>
    SQL> --// execute the relevant script (i.e. execute the conditional
    SQL> --// branch of the PL/SQL IF condition
    SQL> @ &SCRIPT
    SQL> --// file: footab.sql
    SQL>
    SQL> create table footab(
      2          id      number primary key,
      3          col1    number,
      4          col2    date
      5  ) organization index
      6  /
    Table created.
    SQL>
    SQL> --//eof
    // running the same steps when the table does exist
    SQL> --// bind variable for passing data to PL/SQL code and
    SQL> --// to receive data from PL/SQL code
    SQL> var status varchar2(100)
    SQL>
    SQL> declare
      2          function ExistsTable( tableName varchar2 ) return boolean is
      3                  i       integer;
      4          begin
      5                  select 1 into i
      6                  from    user_objects
      7                  where   object_type = 'TABLE'
      8                  and     object_name = tableName;
      9                  return( true );
    10          exception when NO_DATA_FOUND then
    11                  return( false );
    12          end;
    13  begin
    14          --// determine if table exists
    15          if not ExistsTable( 'FOOTAB' ) then
    16                  --// table does not exists and SQL*Plus client
    17                  --// needs to run the footab client script
    18                  :status := 'footab.sql';
    19          else
    20                  :status := 'do-nothing.sql';
    21          end if;
    22  end;
    23  /
    PL/SQL procedure successfully completed.
    SQL>
    SQL> --// use a substitution variable to determine what to do
    SQL> set define on
    SQL> col STATUS new_value SCRIPT
    SQL> select :status as STATUS from dual;
    STATUS
    do-nothing.sql
    SQL>
    SQL> --// execute the relevant script (i.e. execute the conditional
    SQL> --// branch of the PL/SQL IF condition
    SQL> @ &SCRIPT
    SQL> prompt Nothing to do...
    Nothing to do...
    SQL> Method 2. Move all "client scripting" to the server. You can still use .sql files. These need to contain valid DDL that can be parsed and executed. On the server, the .sql files are loaded into a table.
    This can be a physical load (e.g. using <i>DBMS_LOB.LoadFromFile()</i>). Or you can keep the .sql files on the server and use BFILE pointers instead to the files.
    You can now use execute immediate to execute the contents of a .sql file as a CLOB that was read from the table containing the .sql scripts.
    To be honest - I have used both methods extensively in the past and no longer bother using either. Table exists when running the table create script? So what. If the table should not exist, use server exceptions in SQL*Plus to cease processing and exit. If it does not matter whether the table exists or not, why be concern with running the script to create the table if the table already exists?

  • Executing compound commands

    Hi,
    I have a setup project in MSVS2005 that installs my application. At the beginning it creates new tablespace, temporary tablespace, then - user. Then, it should grant some privileges to the newly created user.
    All the command texts are stored in embedded resources (text files).
    The following is the contents of file storing commandGrantPrivilegesToUser.CommandText.
    <file_begin>
    GRANT CREATE SESSION TO $USER_NAME$
    GRANT SELECT ANY TABLE TO $USER_NAME$
    GRANT UNLIMITED TABLESPACE TO $USER_NAME$
    <file_end>
    When executed, the command throws
    ORA-00933: SQL command not properly ended
    I am not sure if I can call a command that in fact compounds of several commands like above. If so, then how should I separate these commands.
    Best regards
    Mans

    Hi,
    To execute multiple statements at once, you'd need to enclose them in an anonymous block.
    To execute DDL inside a procedure, you'd need to execute it via Execute Immediate.
    To execute multiple DDL at once, you'd need to use execute immediate inside an anonymous block.
    Here's an example, hope it helps.
    Cheers,
    Greg
    begin execute immediate 'create user foo identified by bar'; execute immediate 'grant connect, resource to foo'; execute immediate 'grant create synonym to foo'; end;

  • Executing shell commands from Java.

    I want to execute shell commands in Java using the Runtime.exec( String ) method.
    The method works fine under Linux OS, but under Windows '98 the method didn't work at all!
    For example the following call: Runtime.exec( "dir" ) throws an exception showing that the command was not completed. If I replace dir with ls under Linux all is good. What is the problem with the Microsoft Windows '98 ? Is there any solution at my problem ?!
    thx in advance!

    hey JSarmis,
    You can help me... "ls" doesn't work for me on linux.. using Runtime.exec, some commands work, others don't... you may hold the key to what i need? How did u get "ls" to work?

Maybe you are looking for

  • URGENT PROBLEM: Please help me if you can :(

    i am developing a symptom sorter function in JSP and MySQL, where the flow of data is: Select pain type e.g Ear Select category e.g. Hearing Problems Checkbox selections fever cough tired sick A combination of these checkbox selections should take yo

  • Battery life inconsistency

    For a week or two, my iPod touch 3rd Gen will have great battery life (usually takes a few days for it to die) then, for a week or two the battery will MAYBE last a few hours. This was happening before the new firmware update and I never really chang

  • EQ settings, what do they do???

    Hello all, I just bought a B&W Zeppelin, and it is SO COOL! But I have a question. If you go into the EQ settings in iPod on your iPhone, you can choose bass boost, or treble boost, but not both at the same time, which I *completely don't understand*

  • Can't charge shuffle because I can't properly eject

    I understand that the shuffle doesn't charge if the orange light is blinking and that you have to eject from iTunes to get it stop blinking. When I eject from iTunes, I get the message that it can't be ejected from iTunes because files on the shuffle

  • When I upgraded to Firefox 4 my refresh button stayed the same. I thought there was supposed to be a new one?

    Using Windows XP, just updated Firefox and the refresh button is still on the left hand side. I thought with Firefox 4 it was supposed to be within the address bar?