Dynamic SQL for table creation.

Hi Group
I'm executing a procedure using dynamic sql to create a table on my own schema, but it returns :ORA-01031: insufficient privileges, why?, if i executing the procedure on my schema, however if gave grants being sys' GRANT CREATE ANY TABLE TO HR; the creation of the table is successful.
CREATE OR REPLACE PROCEDURE PRC_CREA_TABLA(p_nombre_tabla VARCHAR2, p_esp_columnas VARCHAR2) AS
BEGIN
-- EXECUTE IMMEDIATE 'GRANT CREATE ANY TABLE TO HR';
EXECUTE IMMEDIATE 'CREATE TABLE ' || p_nombre_tabla || ' ('
|| p_esp_columnas || ')';
-- EXECUTE IMMEDIATE 'REVOKE CREATE ANY TABLE FROM HR';
END;
/Thansk a lot
ORACLE 11.2.0.2
ORACLE LINUX 6

Note the name of this forum is "SQL Developer *(Not for general SQL/PLSQL questions)*", so only for issues with the SQL Developer tool. Please post these questions under the dedicated {forum:id=75} forum.
Un saludo,
K.

Similar Messages

  • Should I use dynamic SQL for simple updates?

    Please tell me, out of the two options given below, which option should i use to update columns in a table and why?
    what will be the performance difference between the two approaches?
    Please note: The options given below is just for an example
    procedure proc1(var1 varchar2)
    is
    begin
    update tab1 set col1 = var1;
    commit;
    end;
    procedure proc1(var1 varchar2)
    is
    sqlstr varchar2(1000);
    begin
    sqlstr := 'update tab1 set col1 = :v1';
    execute immediate sqlstr using var1;
    commit;
    end;
    Thanks
    Arun

    Arun G Nath wrote:.
    Should I use dynamic SQL for simple updates? No way, not a chance.
    Performance is not the issue (as long as you are using bind variables).
    But with dynamic SQL, you loose compile time checking; you do not know until runtime if the SQL is valid.
    You also loose the dependency between proc1 and tab1, which can be found only if you search user_source.
    (And in either case, you probably want to remove the commit)
    Regards
    Peter

  • Want to create dynamic SQL with table join

    I want to create a dynamic SQL query so that the user can enter any two table names on the selection screen and two field names that he wants to join. After which i should be able to dynamically generate the SQL (native or open) and show the result as report. I have already read the forum threads and know how to create dynamic SQL for single table, what i m struggling with is how to do inner join. I know i can use nested select but that will make the query very slow because i want to extend it to more than 2 tables later.
    Will give points to useful answer for sure, thanks for reading.

    Hi,
    Following is a piece of code which I have used in my program.
    DATA: ws_flds(72)   TYPE c.
    DATA: ftab  LIKE TABLE OF ws_flds.
    ws_flds = 'rbukrs rprctr racct ryear '.
      APPEND ws_flds TO ftab.
       SELECT (ftab)
        INTO CORRESPONDING FIELDS OF TABLE it_grp_glpca
        FROM glpca FOR ALL ENTRIES IN i_cert_item
        WHERE kokrs = c_kokrs
            AND rldnr = '8A'
            AND rrcty IN ('0','2')
            AND rvers  = '000'
            AND rbukrs = i_cert_item-bukrs
            AND ryear  = p_ryear
            AND rprctr = i_cert_item-prctr
            AND racct  = i_cert_item-saknr
            AND ( poper BETWEEN '001' AND ws_poper )
            AND aufnr IN s_aufnr
            AND kostl IN s_kostl
            AND rfarea IN s_fkber
            AND rmvct IN s_rmvct
            AND sprctr IN s_sprctr
            AND ( racct BETWEEN c_low AND c_high ).
    You can now pass your table name as (p_table) or append fieldnames to the internal table (ftab). if it is join then you can append this table like abukrs asaknr..etc.
    Regards
    Subramanian

  • Dynamic SQL : passing table name as parameter

    Hi
    I have a SQL query (a store procedure )  that i want to convert to PLSQL
    This is a part of my SQL query that i am trying to to find a solution for it, because i cant convert it to oracle :
    DECLARE lookupTableRow CURSOR FOR
      SELECT TableName FROM SYS_LookUpTable
      OPEN lookupTableRow
      FETCH NEXT FROM lookupTableRow INTO @tableName
      WHILE @@FETCH_STATUS=0
      BEGIN
      SET @sql='SELECT * FROM '+@tableName
    EXECUTE sp_executesql @sql
      IF @counter=0
      BEGIN
      INSERT INTO T_TABLE_MAPPING VALUES('P_MAIN_METADATA', 'Table', @tableName)
      END
      ELSE
      BEGIN
      INSERT INTO T_TABLE_MAPPING VALUES('P_MAIN_METADATA', 'Table'+CONVERT(NVARCHAR(10),@counter), @tableName)
      END
      SET @counter=@counter+1
      FETCH NEXT FROM lookupTableRow INTO @tableName
      END
      CLOSE lookupTableRow
      DEALLOCATE lookupTableRow
    As i understand i can't use ORACLE dynamic sql (execute immediate) when the table name is a parameter
    Furthermore when i execute this dynamic query in my SQL store procedure each SELECT statement return me as a result the relevant table rows , those result are different in each loop .
    So i cant do this too with ORACLE dynamic sql .
    Please advice for any solution
    * how can i use dynamic sql with table name as parameter ?
    * how can i use a "dynamic" cursor, in order to be able to display the dynamic results ?
    Thanks for the advice

    Hi,
    b003cf5e-e55d-4ff1-bdd2-f088a662d9f7 wrote:
    Hi
    I have a SQL query (a store procedure )  that i want to convert to PLSQL
    This is a part of my SQL query that i am trying to to find a solution for it, because i cant convert it to oracle :
    DECLARE lookupTableRow CURSOR FOR
      SELECT TableName FROM SYS_LookUpTable
      OPEN lookupTableRow
      FETCH NEXT FROM lookupTableRow INTO @tableName
      WHILE @@FETCH_STATUS=0
      BEGIN
      SET @sql='SELECT * FROM '+@tableName
    EXECUTE sp_executesql @sql
      IF @counter=0
      BEGIN
      INSERT INTO T_TABLE_MAPPING VALUES('P_MAIN_METADATA', 'Table', @tableName)
      END
      ELSE
      BEGIN
      INSERT INTO T_TABLE_MAPPING VALUES('P_MAIN_METADATA', 'Table'+CONVERT(NVARCHAR(10),@counter), @tableName)
      END
      SET @counter=@counter+1
      FETCH NEXT FROM lookupTableRow INTO @tableName
      END
      CLOSE lookupTableRow
      DEALLOCATE lookupTableRow
    As i understand i can't use ORACLE dynamic sql (execute immediate) when the table name is a parameter
    Furthermore when i execute this dynamic query in my SQL store procedure each SELECT statement return me as a result the relevant table rows , those result are different in each loop .
    So i cant do this too with ORACLE dynamic sql .
    Please advice for any solution
    * how can i use dynamic sql with table name as parameter ?
    * how can i use a "dynamic" cursor, in order to be able to display the dynamic results ?
    Thanks for the advice
    I have a SQL query (a store procedure )  that i want to convert to PLSQL
    I doesn't help when you use one term to mean another thing.
    SQL is a language used in both Oracle and other products, such as Microsoft's SQL Server. I don't know much about SQL Server, but Oracle (at least) doesn't support stored procedures in SQL itself; they have to be coded in some other language, such as PL/SQL.  
    As i understand i can't use ORACLE dynamic sql (execute immediate) when the table name is a parameter
    If the table name is a parameter (or only known at run-time for any reason), that's exactly the kind of situation where you MUST use dynamic SQL.
    The number of columns that a query produces (and their datatypes) is fixed when you compile a query, whether that query is dynamic or not.  If you have multiple queries, that produce result sets with different numbers of columns, then you can't combine them into a single query.  The best you can do with one query is to add NULL columns to some of the queries so they all produce the same number of columns.
    If you're just displaying the results, there might not be any reason to combine separate result sets.  Just display one result set after another.
    Whenever you have a question, post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) for all the tables involved, and the results you want from that data.
    Explain, using specific examples, how you get those results from that data.
    Always say what version of Oracle you're using (e.g. 11.2.0.2.0).
    See the forum FAQ: https://forums.oracle.com/message/9362002

  • Dynamic SQL in table vauled function or CLR

    So I have a query that gives me some analysis on the values in a column, in a table.  It reurns a small data set.
    It gives me the max, min, stdev, avg and some other stats grouped by another column.
    I wanted to create a table valued function from the query, so I could do the same analysis on any numeric column, in any table.  I would just pass in the column name and the table name as paramters to my table-valued function and it would return the
    data set.  Then I could join to it and use in other queries.
    I thought I would build my query using dynamic SQL and execute it within the function, but I got an error and learn that you can not use execute in a function.
    I have never created a CLR function, would this be possible to do it this way?  This would be a decent sized step for me, but am willing to learn if possible.  Or does anyone know how to solve this problem?
    Problem: Pass column name and table name into function and have it reurn a dataset.  Use the dataset as a table in other queries, scripts or procedures like a table valued function.
    Thanks,
    Mike

    Milke
    Take a look into READ only table variable parameter
    Create a user-defined data type with a single column.
    Develop a procedure with a table variable as an input parameter.
    Declare a table variable of the type of the user defined data type.
    Loading 10 records into the table variable and pass the table 
    variable to the stored procedure.
    create type tt_example AS TABLE
     (spid int)
    go
    create procedure usp_example
     @spids tt_example READONLY
    AS
     SELECT *
     FROM @spids
    GO
    declare @spids tt_example
    insert into @spids
    select top 10 spid
    from sys.sysprocesses
    exec usp_example @spids=@spids
    Best Regards,Uri Dimant SQL Server MVP,
    http://sqlblog.com/blogs/uri_dimant/
    MS SQL optimization: MS SQL Development and Optimization
    MS SQL Consulting:
    Large scale of database and data cleansing
    Remote DBA Services:
    Improves MS SQL Database Performance
    SQL Server Integration Services:
    Business Intelligence

  • Dynamic binding for table column

    Hi,
    I am using standard application and in a table (not ALV) i want to chnage the name of a column. Already a OTR is placed in it so am planning to do a dynamic bind for the text in the header. Kindly suggest ways.
    Thanks,
    Koushik

    DATA:
            l_caption          TYPE string,
            l_title            TYPE string.
      data lr_caption type ref to cl_wd_caption.
    *---Get OTR Text for Value Description
      CALL METHOD cl_wd_utilities=>get_otr_text_by_alias
        EXPORTING
          alias      = 'ZPERF_MGMT_DEV/RATING'
      language   =
        RECEIVING
          alias_text = l_title.
    lr_caption ?= view->get_element( 'TBL_VAL_HELP_DESCRIPTION_HEADER' ).
    lr_caption->set_text( value = l_title ).

  • Dynamic SQL for creating report in portal

    Has anyone had to create report in Portal using dynamic sql. That is you build up the query commands depending on the parameters entered by the user.
    E.g the columns displayed will be what the users has selected in the parameter form.
    Urgent reply please,
    Femi

    Hi,
    You can use SQL based reports to do this. The report should have a bind variable. The bind variable is used for the users to enter their values and query is built using the value in the bind variable. The user should enter the value of the bind variable from the customization screen.
    Here is an example
    select * from scott.emp
    where deptno = :vdept
    Here vdept appears in the customization screen and user should enter a value for this and run the report.
    Thanks,
    Sharmila

  • Generate script from SQL for database creation

    Hi,
    as we have DBMS_METADATA to get scripts for constraints , is there any way by which we can get scripts used for database creation from existing databases
    Thanks
    kedar

    Thanks for the ODB tool. I'm trying to connect with SYS but ODB tool replied :
    Unable to make connection : connection to sys should be sysdba or sysoper
    How do I tell it to connect "as sysdba" ? I tried putting that in "User Name" field but it didn't work.
    Also, when I create a new connection and try to save it, it will prompt me to :
    Setup user preferences for this instance
    and then popped up the window for "Set Options and Preferences"
    My question is, after I saved this connection, how do I go back into this window to edit it ? I don't see any button for it.
    Thanks again

  • Dynamic sql for select statement

    Hi,
    Please help me with the below code:
    It is updating null if the select statment returns one values. If it fetches multiple values then it throughs the below error msg when running the program.
    Please let me know how to modify the below code. Or let me know is there anyother way to write this code.
    Logic for development:
    * View name should be passed as dynamic.
    CREATE OR REPLACE
    PROCEDURE "PKEP_LOAD_SO_EU" (p_var1 IN VARCHAR2)
    IS
    lv_sql VARCHAR2 (4000);
    lv_name VARCHAR2 (20);
    BEGIN
    lv_sql :=
    ' SELECT DISTINCT LEVEL2
    FROM BIIO_SALES_OB_IMPORT_'|| p_var1;
    EXECUTE IMMEDIATE lv_sql
    INTO lv_name;
    BEGIN
    UPDATE BIIO_SALES_OB_IMPORT_NA2 --table name for updation
    SET SOB_1 = NULL,
    SOB_DATE_1 = NULL
    WHERE level2 = lv_name; -- validation ( eg. Select distinct level2 from biio_sales_ob_import_'||p_var1)
    COMMIT;
    EXCEPTION
    WHEN OTHERS
    THEN
    DBMS_OUTPUT.put_line (SQLERRM);
    NULL;
    END;
    END;
    BEGIN
    PKEP_LOAD_SO_EU ('NA1');
    end;
    Error report:
    ORA-01422: exact fetch returns more than requested number of rows
    ORA-06512: at "DEMANTRA.PKEP_LOAD_SO_EU", line 11
    ORA-06512: at line 2
    01422. 00000 - "exact fetch returns more than requested number of rows"
    *Cause:    The number specified in exact fetch is less than the rows returned.
    *Action:   Rewrite the query or change number of rows requested
    Thanks.
    Padma

    Padu wrote:
    Please let me know whether is anyother way to write this code as im a beginner for SQl.You dont need to have a seperate SELECT statement. Just a single UPDATE will do the job for you.
    create or replace procedure pkep_load_so_eu
       p_var1 in varchar2
    as
    begin
       lSql := ' update biio_sales_ob_import_na2               ' ||
               '    set sob_1      = null                    ' ||
            '      , sob_date_1 = null                    ' ||
            '  where level2 in (                         ' ||
            '                    select level2               ' ||
            '                      from biio_sales_ob_import_'       || p_var1 ||
       execute immediate lSql;
    end;

  • Issue with aflobbld.sql for FND_LOBS_CTX creation

    Hi All,
    As part of the post patching instruction for patch 350000 we started the script aflobbld.sql which ran for about 2days and then we cancelled it. Later we dropped the index and reinitiated the script. Now the script fails with the below error
    SQL> @$FND_TOP/sql/aflobbld.sql APPLSYS APPS
    declare
    ERROR at line 1:
    ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
    ORA-20000: Oracle Text error:
    DRG-50857: oracle error in dreii0fsh
    ORA-01653: unable to extend table APPLSYS.DR$FND_LOBS_CTX$I by 16 in tablespace
    APPS_TS_TX_DATA
    ORA-06512: at line 278
    When I checked the free space it was 32 GB. I added 10 more GB of space to the tablespace and reinitiated it. It still failed with the error. Any ideas on what could be the issue?
    SQL> select sum(length(FILE_DATA))/1024/1024 from "APPLSYS"."FND_LOBS";
    SUM(LENGTH(FILE_DATA))/1024/1024
    23062.35
    SQL>
    SQL> select
    FILE_FORMAT,
    count(*)
    from
    fnd_lobs
    group by FILE_FORMAT; 2 3 4 5 6
    FILE_FORMA COUNT(*)
    binary 50265
    text 9816
    IGNORE 4671
    TEXT 48612
    BINARY 86915
    SQL>
    SQL> select sum(bytes)/1024/1024 from dba_free_space where tablespace_name='APPS_TS_TX_DATA';
    SUM(BYTES)/1024/1024
    43523.25
    SQL>
    When the script was in progress DR$FND_LOBS_CTX$I table increased to almost 40GB
    SQL> select sum(bytes)/1024/1024,segment_name from dba_segments where segment_name like '%FND_LOBS_CTX%' group by segment_name;
    SUM(BYTES)/1024/1024 SEGMENT_NAME
    .125 DR$FND_LOBS_CTX$R
    39994.75 DR$FND_LOBS_CTX$I
    When I checked the size of this table in PROD surprisingly its only 152 mb
    SQL> select sum(bytes)/1024/1024,segment_name from dba_segments where segment_name like '%FND_LOBS_CTX%' group by segment_name;
    SUM(BYTES)/1024/1024
    SEGMENT_NAME
    .125
    DR$FND_LOBS_CTX$R
    44.625
    DR$FND_LOBS_CTX$X
    152.375
    DR$FND_LOBS_CTX$I
    SQL>
    Any help on this would be really appreciated..We have been struggling with it since last ten days to fix it.
    Thanks

    Pl see if these MOS Docs help
    "Rebuild Help Search Index" fails with ORA-01631: max # extents (505) reached in table APPLSYS.DR$FND_LOBS_CTX$I (Doc ID 367861.1)
    TROUBLESHOOTING GUIDE (TSG) : UNABLE TO EXTEND Errors (Doc ID 1025288.6)
    HTH
    Srini

  • Best Practices for Table creation

    Is it a good practice to have a primary key and/or unique key identifier for every tables created for an application even if for some reason the table is only being used as temporary or interface table? Thanks.

    Hi,
    only being used as temporaryFor temporary tables, lookup "CREATE GLOBAL TEMPORARY TABLE" in TFM
    As for me a table without a PK suffers from an error in it's design. PKs are one of Merise's foundations.
    Sure there are exceptions, but if more than x% of your tables have no PK, there's a problem.
    Regards,
    Yoann.

  • Dynamic SQL for selection-option???

    Hi,
    I am trying to select a table from the parameters (range ) , but every time i run it give me a dump witn error in  where ...(itab)
    First i declare :
    data : cond(72) TYPE C,
             itab LIKE TABLE OF cond .
    select-options: p_auart  FOR vbak-auart ,
                          p_vkorg FOR vbak-vkorg.
    --->
    If not p_auart is initial.
        cond = 'auart IN p_auart' .
    APPEND cond To itab.
    endif.
    the i do select:
    Select * from vbak where (itab).
    ---> I give a dum in where clause....
    So could you please help me out of this
    Thanks

    Hi Friend,
    Make the following corrections.Your code will work fine.
    By the statement- 'itab LIKE TABLE OF cond .' you meant to create a table of the type 'COND' which should be a structure.
    So, here lies the problem.In your case COND is a char type variable and you are trying to mimic the table 'itab' from it.
    As a rule of thumb,a table should mimic a std., table or a structure.
    So remove the following lines:
    data : cond(72) TYPE C,
    itab LIKE TABLE OF cond .
    Include the following lines:
    type: begin og itab_record,
            cond(72) TYPE C,
            end of itab_record."Declaration of structure itab_record.
    data: itab type standard table of itab_record initial size 0 with header line."Declaration of the table itab which mimics the       structure itab_record.
    Modify these two statements,
    cond = 'auart IN p_auart' .
    APPEND cond To itab.
    to
    itab_record-cond = 'auart IN p_auart' .
    append itab_record.
    Other lines are exact,make these changes,execute it and seek my assistance if necessary.
    Regards,
    Lakshmanan

  • How to write Dynamic SQL for this SQL ?

    EXECUTE IMMEDIATE 'select COUNT(*) from dba_Tab_privs@' ||db_link|| ' WHERE Grantee <> 'DELETE_CATALOG_ROLE'
    AND Table_Name = 'LINK$'
    AND Grantee NOT IN (SELECT Grantee
    FROM dba_Role_privs
    WHERE Granted_Role = 'DBA')' into i using x;

    Hi bapalu,
    I take that x is the name of your db_link?
    If so,
    DECLARE
       i      NUMBER;
       x      dba_db_links.db_link%TYPE;
       stmt   VARCHAR2(255);
    BEGIN
       x := 'some_link';
       stmt :=
          'SELECT count(*)
             FROM dba_tab_privs@:db_link
            WHERE grantee <> ''DELETE_CATALOG_ROLE''
              AND table_name = ''LINK$''
              AND grantee NOT IN(SELECT grantee
                                   FROM dba_role_privs
                                  WHERE granted_role = ''DBA'')';
       EXECUTE IMMEDIATE REPLACE(stmt, ':db_link', x)
                    INTO i;
       dbms_output.put_line('The count: ' || i);
    END;Also, I think this is maybe not what you want:
    AND table_name = ''LINK$''Regards
    Peter

  • Dynamic Internal Table creation and population

    Hi gurus !
    my issue refers to the slide 10 provided in this slideshow : https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/b332e090-0201-0010-bdbd-b735e96fe0ae
    My example is gonna sound dumb, but anyway: I want to dynamically select from a table into a dynamically created itab.
    Letu2019s use only EKPO, and only field MENGE.
    For this, I use Classes cl_abap_elemdescr, cl_sql_result_set and the Data Ref for table creation. But while fetching the resultset, program dumps when fields like MENGE, WRBTR are accessed. Obviously their type are not correctly taken into account by my program.
    Here it comes:
    DATA: element_ref             TYPE REF TO cl_abap_elemdescr,
          vl_fieldname               TYPE string,
                 tl_components         TYPE abap_component_tab,
                 sl_components         LIKE LINE OF tl_components_alv,
    linetype_lcl               TYPE REF TO cl_abap_structdescr,
    ty_table_type            TYPE REF TO cl_abap_tabledescr,
    g_resultset             TYPE REF TO cl_sql_result_set
    u2026
    CONCATENATE sg_columns-table_name '-' sg_columns-column_name INTO vl_fieldname.
    * sg_columns-table_name contains 'EKPO'
    * sg_columns-column_name contains 'MENGE'
    * getting the element as a component
    element_ref ?= cl_abap_elemdescr=>describe_by_name( vl_fieldname ).
    sl_components-name  = sg_columns-column_name.
    sl_components-type ?= element_ref.
    APPEND sl_components TO tl_components.
    * dynamic creation of internal table
    linetype_lcl = cl_abap_structdescr=>create( tl_components ).
    ty_table_type = cl_abap_tabledescr=>create(
                      p_line_type = linetype_lcl ).
    u2026
    * Then I will create my field symbol table and line. Code has been cut here.
    CREATE DATA dy_line LIKE LINE OF <dyn_table>.
    u2026
    * Then I will execute my query. Here itu2019s: Select MENGE From EKPO Where Rownum = 1.
      g_resultset = g_stmt_ref->execute_query( stmt_str ).
    * Then structure for the Resultset is set
      CALL METHOD g_resultset->set_param_struct
        EXPORTING
          struct_ref = dy_line.
    * Fetching the lines of the resultset  => Dumpu2026
      WHILE g_resultset->next( ) > 0.
        ASSIGN dy_line->* TO <dyn_wa>.
        APPEND <dyn_wa> TO <dyn_table>.
      ENDWHILE.
    Anyone has any clue to how prevent my Dump ??
    The component for MENGE seems to be described as a P7 with 2 decimals. And the resultset wanna use a QUAN type... or something like that !

    Hello
    I have expanded your sample coding for selecting three fields out of EKPO:
    *& Report  ZUS_SDN_SQL_RESULT_SET
    *& Thread: Dynamic Internal Table creation and population
    *& <a class="jive_macro jive_macro_thread" href="" __jive_macro_name="thread" modifiedtitle="true" __default_attr="1375510"></a>
    *& NOTE: Coding for dynamic structure / itab creation taken from:
    *& Creating Flat and Complex Internal Tables Dynamically using RTTI
    *& https://wiki.sdn.sap.com/wiki/display/Snippets/Creating+Flat+and+
    *& Complex+Internal+Tables+Dynamically+using+RTTI
    REPORT  zus_sdn_sql_result_set.
    TYPE-POOLS: abap.
    DATA:
    go_sql_stmt       TYPE REF TO cl_sql_statement,
    go_resultset      TYPE REF TO cl_sql_result_set,
    gd_sql_clause     TYPE string.
    DATA:
      gd_tabfield      TYPE string,
      go_table         TYPE REF TO cl_salv_table,
      go_sdescr_new    TYPE REF TO cl_abap_structdescr,
      go_tdescr        TYPE REF TO cl_abap_tabledescr,
      gdo_handle       TYPE REF TO data,
      gdo_record       TYPE REF TO data,
      gs_comp          TYPE abap_componentdescr,
      gt_components    TYPE abap_component_tab.
    FIELD-SYMBOLS:
      <gs_record>   TYPE ANY,
      <gt_itab>     TYPE STANDARD TABLE.
    START-OF-SELECTION.
    continued.

  • Dynamic SQL Statements with an JDBC Adapter

    Hello,
    i have a simple scenario:
    A WebService calls SAP XI and XI has convert this request into an dynamic SQL for a particular DB-Table.
    Two Questions:
    1. Can this done with an JDBC-Receiverchannel or do i have to write a Java Server-Proxy?
    2. How do i bring dynamic SQL Stratement into the JDBC Receiver-Adapter?
    Regard
    Gunnar

    I think you should be able to achieve this using the SQL_QUERY / SQL_DML action in the JDB receiver adapter...
    The SQL string can be dynamically created....
    see the help link on different document types with JDBC receiver adapater....look for statement6...
    http://help.sap.com/saphelp_nw04/helpdata/en/2e/96fd3f2d14e869e10000000a155106/frameset.htm
      <StatementName6>
    <anyName action=” SQL_QUERY” | “SQL_DML”>
    <access>SQL-String with optional placeholder(s)</access>
    <key>
      <placeholder1>value1</placeholder1>
      <placeholder2>value2<placeholder2>    
    </key>
    </anyName > 
      </StatementName6>
    Thanks,
    Renjith

Maybe you are looking for