Stored procedure for exec. multiple insert queries

Hello everybody,
I am running on
select banner from v$version;
Output:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
I am a new to oracle and I need some help.
I have to populate a table on monthly basis, for which I am required to run 20 queries.
All queries retrieve data from the same table in another schema.
I need to schedule a SP in order to be able to run all these queries.
Till now, I have built separate SPs for the queries Proc_1, Proc_2, Proc_3, ..., Proc_20 and a final big SP (*main_sp*) which calls these SPs.
Being that I have to change the date value for every month (I am doing it manually every single month), for every single query,
I was wondering if there is a way to include all these queries in a single stored procedure.
I am reading here execute parallel queries
but I do not want to create 20 jobs.
I found this topic, which seems to be interesting too, but I have never done this before:
Executing multiple SQL scripts in a batch
Moreover, how can I manage to insert the value of date only once (e.g in the main_sp) and every queries gets this value automatically.
P.S.
All queries retrieve data from the same table in another schema and fill in with data the same table in actual schema.
insert into destin_tbl
select from source_tbl@dbb_link
Here is how my actual work looks like:
First, I have built 20 sp, for each and every query:
CREATE OR REPLACE PROCEDURE "SP_1" (
START_DATE out DATE,
IS
BEGIN
START_DATE := SYSDATE;
insert /*+ append nologging parallel(x,4)*/into destin_tbl x
select /*+ parallel(a,4)*/ field_1, field_2, field_3
from source_tbl@dbb_link a
where a.date_key >= 20101201 and a.date_key < 20100101 -- full month (december 2010) here
and other conditions
commit;
END SP_1;
= = = = = =
CREATE OR REPLACE PROCEDURE "SP_2" (
START_DATE out DATE,
IS
BEGIN
START_DATE := SYSDATE;
insert /*+ append nologging parallel(x,4)*/into destin_tbl x
select /*+ parallel(a,4)*/ field_1, field_2, field_3
from source_tbl@dbb_link a
where a.date_key >= 20101201 and a.date_key < 20100101 -- full month (december 2010) here
and other conditions
commit;
END SP_2;
CREATE OR REPLACE PROCEDURE "SP_20" (
START_DATE out DATE,
IS
BEGIN
START_DATE := SYSDATE;
insert /*+ append nologging parallel(x,4)*/into destin_tbl x
select /*+ parallel(a,4)*/ field_1, field_2, field_3
from source_tbl@dbb_link a
where a.date_key >= 20101201 and a.date_key < 20100101 -- full month (december 2010) here
and other conditions
commit;
END SP_20;
I change the values for the date_key field every month I need to insert data, before I run the main_sp:
CREATE OR REPLACE PROCEDURE "main_sp" (
START_DATE out DATE
IS
BEGIN
sp_1(START_DATE);
sp_2(START_DATE);
sp_3(START_DATE);
sp_20(START_DATE);
END main_sp;
/

You would need to pass a parameter to the main procedure and to all of the sub procedures. I would do it somethign like this. The main procedure takes a single date parameter the way I have structured it here, any date in the month you are interested in will do
PROCEDURE main_sp(p_date IN DATE)
   l_st_dt  VARCHAR2(8);
   l_end_dt VARCHAR2(8);
BEGIN
   l_st_dt := TO_CHAR(TRUNC(p_date, 'Mon'), 'yyyymmdd');
   l_end_dt := TO_CHAR(LAST_DAY(p_date) + 1, 'yyyymmdd');
   sp_1 (l_st_dt, l_end_dt);
   sp_2 (l_st_dt, l_end_dt);
END;Then your individual procedures would look something like:
PROCEDURE SP_1 (p_st_dt  IN VARCHAR2,
                p_end_dt IN VARCHAR2) IS
BEGIN
   insert /*+ append nologging parallel(x,4)*/into destin_tbl x
   select /*+ parallel(a,4)*/ field_1, field_2, field_3
   from source_tbl@dbb_link a
   where a.date_key >= p_st_dt and a.date_key < p_end_dt -- full month (december 2010) here
     and other conditions
   commit;
END;
Regarding the queries...they do not change only in the conditions statement, but also in the retrieve.
I have 2 constant fields, whose value changes based on conditions (e.g. query_1 retrieves data regarding diesel car >speed => constant_field_1 = 'Diesel|_Car_Speed' ... query_2 retrieves data related to motorbike unleaded speed >=> constant_field_1 = 'MotorB_UL_Speed'.
These makes the grouping of these queries impossible.Without seeing actual queries, it is impossible to say, but my guess would be that the 20 queries could be reduced to a single query, or at least less than 20. Something like:
insert into destin_tbl x
select CASE WHEN condition that indicates car THEN 'Diesel|_Car_Speed'
            WHEN condition that indicates motor bike THEN 'MotorB_UL_Speed'
            WHEN other conditions THEN other field1 values END
       field_2, field_3
from source_tbl@dbb_link a
where a.date_key >= p_st_dt and
      a.date_key < p_end_dt
  and other conditionsThe conditions for the CASE statement could be pulled out of the where caluses for the individual queries.
John
Edited by: John Spencer on Jan 24, 2011 9:37 AM

Similar Messages

  • How to handle stored procedure response having multiple queries

    Hi Friends,
    While working in JDBC to RFC scenario,I faced an issue that my stored procedure is having multiple SQL queries in it. First Select and then update and again some select options.So,how to handle the response of the stored procedure. I read that while using sender JDBC
    " db.processDBSQLStatement=<SQL-Select-Statement>
    Either specify a valid SQL SELECT statement to select the data to be sent from the specified database, or specify an SQL EXECUTE statement to execute a stored procedure that contains exactly one SELECT statement  "
    So, please suggest me is there any other way to catch the output of the stored procedure.Because, if select statement is working fine but if any other quires fails then data inconsistencies can happen.Kindly help me out.
    Thanks and Regards,
    Nutan

    Hi nutan,
    >>Already exception is handled in SP.But,issue is that select will never fail so, sender adapter will get the resultset from select and continue process.But if later any other query fails in SP adpter wont be getting any response.
    Along with exception you need to handle the case when some other query fails. A SP is like a procedure which will do a certain list of activities before providing the output. So during this activity if some query fail then you can send back the response with a message!!!! And in XI handle this error (by routing it to some error receiver etc)
    >>I need to try something like creating a temporary table and inserting the resultset of slect statement in that. and perform all other operations and after successful completion of all the queries.Again i want to get all the values from the temporary table. So,whether I can write such query in the sender communication channel.Please suggest me for this.
    Approach looks ok, but think of the delay for JDBC sender adapter. IT will invoke your SP and will wait for it to fill a table and do all the processing. I guess this may become a issue for you.
    Check on the frequency of this interface and message size before taking this design approach
    Regards
    Suraj

  • Simple stored procedure to validate multiple customer account numbers without defining a type

    I would like to create a simple stored procedure to validate up to 1-10 different customer account numbers at a time and tell me which ones are valid and which ones are invalid (aka exist in the Accounts table).  I want it to return two columns, the
    account number passed in and whether each is valid or invalid.  
    The real catch is I don't want to have to define a type and would like to do it with standard ANSI sql as my application has to support using multiple dbms's and not just sql server.  Thanks!

    Hi again :-)
    Now we have the information to help you :-)
    I write the explanation in the code itself. Please read it all and if you have any follow up question then just ask
    This solution is for SQL Server and it is not fit for all data sources. Please read all the answer including the comments at the end regarding other data sources. Basically you can use one String with all the numbers seperated by comma and
    use a SPLIT function in the SP. I give you the solution using datatype as this is best for SQL Server.
    In this case you should have a split function and this is very different from one database to another (some have it build it, most dont)
    ------------------------------------------------------------------- This part call DDL
    CREATE TABLE Accounts(
    AccountNbr [char](10) NOT NULL,
    CustomerName [varchar](100) NOT NULL,
    CONSTRAINT [PK_Accounts] PRIMARY KEY CLUSTERED ([AccountNbr] ASC)
    GO
    ------------------------------------------------------------------- This part call DML
    INSERT INTO Accounts(AccountNbr, CustomerName)
    SELECT
    cast(cast((9000000000* Rand() + 100000) as bigint ) as char(10)) as AccountNbr
    ,SUBSTRING(CONVERT(varchar(255), NEWID()), 0, 11) as CustomerName
    GO
    ------------------------------------------------------------------- Always I like to check the data
    SELECT * from Accounts
    GO
    /* Since you use random input in the DML and I need to check valid or in-valid data,
    Therefore I need to use this valid AccountNbr for the test!
    AccountNbr CustomerName
    6106795116 E689A83F-A
    -------------------------- Now we sytart with the answer ------------------------------------
    -- You should learn how to Create stored Procedure. It is very eazy especially for a developr!
    -- http://msdn.microsoft.com/en-us/library/ms345415.aspx
    -- dont use the SSMS tutorial! use Transact-SQL
    -- Since you want to insert unknown number of parameters then you can use Table-Valued Parameters as you can read here
    -- http://msdn.microsoft.com/en-us/library/bb510489.aspx
    -------------------------- Here is what you looking for probably:
    /* Create a table type. */
    CREATE TYPE Ari_AcountsToCheck_Type AS TABLE (AccountNbr BIGINT);
    GO
    /* Create a procedure to receive data for the table-valued parameter. */
    CREATE PROCEDURE Ari_WhatAccountsAreValid_sp
    @AcountsToCheck Ari_AcountsToCheck_Type READONLY -- This is a table using our new type, which will used like an array in programing
    AS
    SET NOCOUNT ON;
    SELECT
    T1.AccountNbr,
    CASE
    when T2.CustomerName is null then 'Not Valid'
    else 'Valid'
    END
    from @AcountsToCheck T1
    Left JOIN Accounts T2 On T1.AccountNbr = T2.AccountNbr
    GO
    -- Here we can use it like this (execute all together):
    /* Declare a variable that references the type. */
    DECLARE @_AcountsToCheck AS Ari_AcountsToCheck_Type;
    /* Add data to the table variable. */
    Insert @_AcountsToCheck values (45634),(6106795116),(531522),(687),(656548)
    /* Pass the table variable data to a stored procedure. */
    exec Ari_WhatAccountsAreValid_sp @AcountsToCheck = @_AcountsToCheck
    GO
    ------------------------------------------------------------------- This part I clean the DDL+DML since this is only testing
    drop PROCEDURE Ari_WhatAccountsAreValid_sp
    drop TYPE Ari_AcountsToCheck_Type
    -------------------------- READ THIS PART, for more details!!
    -- validate up to 1-10 different customer account numbers at a time
    --> Why not to validate alkl ?
    --> SQL Server work with SET and not individual record. In most time it will do a better job to work on one SET then to loop row by row in the table.
    -- tell me which ones are valid and which ones are invalid (aka exist in the Accounts table)
    --> If I understand you correctly then: Valid = "exist in the table". true?
    -- I want it to return two columns, the account number passed in and whether each is valid or invalid.
    --> It sound to me like you better create a function then SP for this
    -- The real catch is
    -- I don't want to have to define a type
    --> what do you mean by this?!? Do you mean the input parameter is without type?
    -- and would like to do it with standard ANSI sql
    --> OK, I get that you dont want to use any T-SQL but only pure SQL (Structured Query Language),
    --> but keep inmind that even pure SQL is a bit different between different databases/sources.
    -->
    -- as my application has to support using multiple dbms's and not just sql server.
    --> If you are looking a solution for an applicatin then you probably should use one of those approach (in my opinion):
    --> 1. You can use yourown dictunery, or ini file for each database, or resources which is the build in option forwhat you are looking for
    --> You can create for each data source a unique resources
    --> If the queries that need to be execut are known in advance (like in this question), then you can use the above option to prepare the rigt query for each data source
    --> Moreover! one of those resources can handle as general for "other ources"
    --> 2. There several ORM that already do what you ask for and know how to work with different data sources.
    --> You can use those ORM and use their query languge instead of SQL (for example several work with LINQ).
    I hope this is helpful :-)
    [Personal Site] [Blog] [Facebook]

  • Stored procedure for arhive

    I created a stored procedure for send data from a source bd to the bd destination with a link between BD
    But it will not work
    CREATE OR REPLACE PROCEDURE archivage ( source IN VARCHAR2, destination IN VARCHAR2)
    BEGIN
    / * - Prepare a cursor to select from the bd_source: * /
    source_cursor: = dbms_sql.open_cursor;
    DBMS_SQL.PARSE (source_cursor,
    'SELECT table_name FROM dba_tables' | | source,DBMS_SQL.NATIVE);
    LOOP i in source_cursor
    /* Or i use this !!!!
    SELECT object_name FROM dba_objects WHERE owner = 'SCOTT' AND object_type = 'TABLE'*/
    DBMS_SQL.DEFINE_COLUMN (source_cursor, i);
    end loop
    ignorer: DBMS_SQL.EXECUTE = (source_cursor);
    / * - Prepare a cursor to insert into the destination db: * /
    destination_cursor: = DBMS_SQL.OPEN_CURSOR;
    DBMS_SQL.PARSE (destination_cursor,
    'INSERT INTO' | | destination | | DBMS_SQL.NATIVE);
    / * - Fetch a row from the source table and insert it into the destination table: * /
    loop
    if DBMS_SQL.FETCH_ROWS (source_cursor)> 0 ALORS
    - Obtenir des valeurs de colonne de la ligne
    DBMS_SQL.COLUMN_VALUE (source_cursor,i);
    DBMS_SQL.BIND_VARIABLE (destination_cursor,i);
    ignorer: DBMS_SQL.EXECUTE = (destination_cursor);
    ELSE
    EXIT;
    End If;
    END LOOP;
    /*-Close cursor */
    COMMIT;
    DBMS_SQL.CLOSE_CURSOR (source_cursor);
    DBMS_SQL.CLOSE_CURSOR (destination_cursor);
    EXCEPTION
    WHEN OTHERS, THEN
    if
    DBMS_SQL.IS_OPEN (source_cursor)then
    DBMS_SQL.CLOSE_CURSOR (source_cursor);
    End If;
    if DBMS_SQL.IS_OPEN (destination_cursor) then
    DBMS_SQL.CLOSE_CURSOR (destination_cursor);
    End If;
    RAISE;
    END;

    find 10 differences ... :(
    CREATE OR REPLACE PROCEDURE archivage (source        IN VARCHAR2,
                                           destination   IN VARCHAR2)
    IS
       source_cursor        INTEGER;
       destination_cursor   INTEGER;
       ignorer              INTEGER;
    BEGIN
       /* - Prepare a cursor to select from the bd_source: */
       source_cursor := DBMS_SQL.open_cursor;
       DBMS_SQL.
        PARSE (source_cursor,
               'SELECT table_name FROM dba_tables' || source,
               DBMS_SQL.NATIVE);
       FOR i IN source_cursor
       LOOP
          /* Or i use this !!!!
          SELECT object_name FROM dba_objects WHERE owner = 'SCOTT' AND object_type = 'TABLE'*/
          DBMS_SQL.DEFINE_COLUMN (source_cursor, i);
       END LOOP;
       ignorer := DBMS_SQL.EXECUTE (source_cursor);
       /* - Prepare a cursor to insert into the destination db: */
       destination_cursor := DBMS_SQL.OPEN_CURSOR;
       DBMS_SQL.
        PARSE (destination_cursor,
               'INSERT INTO ' || destination,
               DBMS_SQL.NATIVE);
       /* - Fetch a row from the source table and insert it into the destination table: */
       LOOP
          IF DBMS_SQL.FETCH_ROWS (source_cursor) > 0
          THEN
             --ALORS
             -- Obtenir des valeurs de colonne de la ligne
             DBMS_SQL.COLUMN_VALUE (source_cursor, i);
             DBMS_SQL.BIND_VARIABLE (destination_cursor, i);
             ignorer := DBMS_SQL.EXECUTE (destination_cursor);
          ELSE
             EXIT;
          END IF;
       END LOOP;
       /*-Close cursor */
       COMMIT;
       DBMS_SQL.CLOSE_CURSOR (source_cursor);
       DBMS_SQL.CLOSE_CURSOR (destination_cursor);
    EXCEPTION
       WHEN OTHERS
       THEN
          IF DBMS_SQL.IS_OPEN (source_cursor)
          THEN
             DBMS_SQL.CLOSE_CURSOR (source_cursor);
          END IF;
          IF DBMS_SQL.IS_OPEN (destination_cursor)
          THEN
             DBMS_SQL.CLOSE_CURSOR (destination_cursor);
          END IF;
          RAISE;
    END;
    /

  • Stored procedure that returns multiple tables

    Hello everyone,
    I was wondering if there's a way to write a stored procedure that returns multiple result set as in sql server. for example, in sql server, you can write 2 select statements and when loading them in c#, u can get two data tables.
    I am not sure having a single ref cursor for each select is the only solution. I might need to return a variable number of tables per procedure call (based on a certain criteria).
    Any ideas?
    thanks for your time

    Sure. Ref cursor is the only easier answer for your problem.
    satyaki>
    satyaki>select * from v$version;
    BANNER
    Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod
    PL/SQL Release 10.2.0.3.0 - Production
    CORE    10.2.0.3.0      Production
    TNS for 32-bit Windows: Version 10.2.0.3.0 - Production
    NLSRTL Version 10.2.0.3.0 - Production
    Elapsed: 00:00:01.43
    satyaki>
    satyaki>create or replace procedure ref_gen_arg(choice in int,b in out sys_refcursor)
      2  is  
      3    str   varchar2(500);
      4  begin   
      5    if choice = 1 then      
      6      str := 'select * from emp';   
      7    elsif choice = 2 then      
      8      str := 'select * from dept';   
      9    end if;       
    10   
    11    open b for str;
    12  exception  
    13    when others then     
    14      dbms_output.put_line(sqlerrm);
    15  end;
    16  /
    Procedure created.
    Elapsed: 00:00:04.38
    satyaki>
    satyaki>
    satyaki>declare   
      2    rec_x emp%rowtype;   
      3    rec_y dept%rowtype;       
      4    w sys_refcursor;
      5  begin  
      6    dbms_output.enable(1000000);  
      7    ref_gen_arg(1,w);  
      8    loop    
      9      fetch w into rec_x;     
    10      exit when w%notfound;             
    11        dbms_output.put_line('Employee No: '||rec_x.empno||' - '||                          
    12                             'Name: '||rec_x.ename||' - '||                          
    13                             'Job: '||rec_x.job||' - '||                          
    14                             'Manager: '||rec_x.mgr||' - '||                          
    15                             'Joining Date: '||rec_x.hiredate||' - '||                          
    16                             'Salary: '||rec_x.sal||' - '||                          
    17                             'Commission: '||rec_x.comm||' - '||                          
    18                             'Department No: '||rec_x.deptno);  
    19    end loop;  
    20    close w;    
    21   
    22    ref_gen_arg(2,w);  
    23    loop    
    24      fetch w into rec_y;
    25      exit when w%notfound;            
    26         dbms_output.put_line('Department No: '||rec_y.deptno||' - '||                           
    27                              'Name: '||rec_y.dname||' - '||                           
    28                              'Location: '||rec_y.loc);  
    29    end loop;  
    30    close w;
    31  exception  
    32    when others then    
    33      dbms_output.put_line(sqlerrm);
    34  end;
    35  /
    Employee No: 9999 - Name: SATYAKI - Job: SLS - Manager: 7698 - Joining Date: 02-NOV-08 - Salary: 55000 - Commission: 3455 - Department No: 10
    Employee No: 7777 - Name: SOURAV - Job: SLS - Manager:  - Joining Date: 14-SEP-08 - Salary: 45000 - Commission: 3400 - Department No: 10
    Employee No: 7521 - Name: WARD - Job: SALESMAN - Manager: 7698 - Joining Date: 22-FEB-81 - Salary: 1250 - Commission: 500 - Department No: 30
    Employee No: 7566 - Name: JONES - Job: MANAGER - Manager: 7839 - Joining Date: 02-APR-81 - Salary: 2975 - Commission:  - Department No: 20
    Employee No: 7654 - Name: MARTIN - Job: SALESMAN - Manager: 7698 - Joining Date: 28-SEP-81 - Salary: 1250 - Commission: 1400 - Department No: 30
    Employee No: 7698 - Name: BLAKE - Job: MANAGER - Manager: 7839 - Joining Date: 01-MAY-81 - Salary: 2850 - Commission:  - Department No: 30
    Employee No: 7782 - Name: CLARK - Job: MANAGER - Manager: 7839 - Joining Date: 09-JUN-81 - Salary: 4450 - Commission:  - Department No: 10
    Employee No: 7788 - Name: SCOTT - Job: ANALYST - Manager: 7566 - Joining Date: 19-APR-87 - Salary: 3000 - Commission:  - Department No: 20
    Employee No: 7839 - Name: KING - Job: PRESIDENT - Manager:  - Joining Date: 17-NOV-81 - Salary: 7000 - Commission:  - Department No: 10
    Employee No: 7844 - Name: TURNER - Job: SALESMAN - Manager: 7698 - Joining Date: 08-SEP-81 - Salary: 1500 - Commission: 0 - Department No: 30
    Employee No: 7876 - Name: ADAMS - Job: CLERK - Manager: 7788 - Joining Date: 23-MAY-87 - Salary: 1100 - Commission:  - Department No: 20
    Employee No: 7900 - Name: JAMES - Job: CLERK - Manager: 7698 - Joining Date: 03-DEC-81 - Salary: 950 - Commission:  - Department No: 30
    Employee No: 7902 - Name: FORD - Job: ANALYST - Manager: 7566 - Joining Date: 03-DEC-81 - Salary: 3000 - Commission:  - Department No: 20
    Department No: 10 - Name: ACCOUNTING - Location: NEW YORK
    Department No: 20 - Name: RESEARCH - Location: DALLAS
    Department No: 30 - Name: SALES - Location: CHICAGO
    Department No: 40 - Name: LOGISTICS - Location: CHICAGO
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.73
    satyaki>Regards.
    Satyaki De.

  • Stored procedures for User Tables

    Can somebody please help me with this matter?. I need to add stored procedures for user tables. Is there any way  of doing so?.
    Thanks in advance.
    Ernesto.

    Ernesto,
    You have posted multiple threads for the same question.  Please check the other thread and close this one:
    Stored procedures in User Tables
    Thanks,
    Gordon

  • Stored Procedure for Accounts Receivable

    Hi. First off, apologies in advance if I have put this question into the wrong topic. Secondly, I first saw SAP 3 weeks ago when I stared my new job and have had no training so please bear with me if some of what I ask doesn't make much sense.
    OK, the issue is this.  In SAP B1, there is a built in Report called "Customer Receivables Aging" which allows you to see Customer Receivable Accounts by age (e.g 0-30, 31-60, 61-90, 90+) and so on.  The problem with the built in report is that it doesn't show all the fields I want - it only shows the Customer Name, balance, and then the aging balances.  I want to be able to see things like the customer's contact details, etc. I know this makes no sense because the whole point of the report is to be able to drill down into the different rows, but this report needs to be issued in printed form, hence the need for the extra fields.
    Since I can't seen any way from within SAP to change the fields returned by this report, I thought I'd have a stab at writing my own SQL to select out the same data along with the extra fields I wanted.  That's when the problems began...try as I might, I cannot get my figures to tally with the SAP Report.
    They are almost correct, but not quite. I am sure that I am missing a selection or some other element of the logic that B1 uses to create the built in report.
    If you want, I can post the SQL I'm using....I'm not an SQL guru by any means, but I do know my way around it; the biggest problem I have is that I cannot find any documentation as to the 4 letter tables that SAP uses and their relationships except on the most basic level (e.g ORIN is Open Return Invoice [maybe])
    Then I thought maybe it might be possible to edit that report section in B1 using the SDK.  That would be a better solution as I would not have to 'reinvent the wheel', I can just SELECT an extra field or three to include in the report.
    So my question is
    ->Does anyone have a stored procedure for SQL Server that can replicate correctly the SAP B1 "Customer Receivable Aging", even just the process SAP uses to gather this data would be good.
    OR
    is it possible to edit this report in SAP to put in the extra fields I want.
    Or, am I totally barking up the wrong tree? Thanks in advance, I know this is a long post.

    Hi Stephen,
    There should be a print layout attached to the on-screen report. This can be altered to show the additional fields you want without resorting to SDK or SQL development.
    When you have the Customer Receivables Ageing report open on screen, choose Tools-Print Layout Designer or click on the Print Layout Designer icon on the toolbar. When prompted, choose the layout you wish to edit and you'll be taken to the layout design. In the layout, you can add additional fields and should be able to add most business partner fields. As the report is set to portrait by default, I recommend changing it to landscape so you have lots more space to add the extra fields you want. This report writer is fairly intuitive, if a little basic.
    You will need to save this new report design, set it to be the default layout and then when you select to print the Customer Receivables Ageing report (ie Print Preview or Print) you will see the new report.
    Hope this helps,
    Owen

  • Stored Procedure For Web Service in Visual Composer 7.1

    Hello,
    I want to use stored procedure for Webservice in Visual Composer 7.1
    I can find this Web service but not supported. ( ex) prcreleased_test - Not supported )
    Log.
    Message: Error in connection - Can' t execute Web service.
    Date: 2008-07-01
    Time: 16:41:43:906
    Category: com.sap.tc.webdynpro.progmodel.generation.DelegatingComponent
    Location: com.sap.tc.webdynpro.progmodel.generation.DelegatingComponent.processExecution: 
    Application: sap.com/test~kmshim_wf_impl
    Thread: HTTP Worker [1]
    Data Source: j2ee\cluster\server0\log\defaultTrace_00.trc
    Correlator ID: 240496500000034715
    Argument Objects: 
    Arguments: 
    DSR Component: n.a.
    DSR Transaction: cb4b3560473711dd9fb4001e4f3b8fcb
    Log2
    Message: Stopped further execution since the interpreter is unusable
    Date: 2008-07-01
    Time: 16:41:43:906
    Category: com.sap.tc.webdynpro.progmodel.generation.DelegatingComponent
    Location: com.sap.tc.webdynpro.progmodel.generation.DelegatingComponent.XGLInterpreter
    Application: sap.com/test~kmshim_wf_impl
    Thread: HTTP Worker [1]
    Data Source: j2ee\cluster\server0\log\defaultTrace_00.trc
    Correlator ID: 240496500000034715
    Argument Objects: 
    Arguments: 
    DSR Component: n.a.
    DSR Transaction: cb4b3560473711dd9fb4001e4f3b8fcb '
    Help me^^ plz..

    Hi Tanna.
    Thanks for your reply^^
    I create webservice that access my stored procedure.
    But not supported.
    http://dmp.humaxdigital.com/HumaxCmdwService/Service1.asmx?wsdl
    There are two service. (Hello World - Test, prcrelease_test - Stored Procedure )
    'Hello World' is supported but prcrelease_test is not supported. I can't drag to storyboard.
    Our company's DB is MSSQL2005.
    please help me^^

  • Stored Procedure for Crystal Reports

    Hi All,
    I developed this test stored procedure to see wheather we could a stored procedure for crystal reports. It compiled without any problem, but when I run it, it gives me error message. Here is the stored Procedure..
    CREATE OR REPLACE PROCEDURE WOLD1SIM.TEST_PROCEDURE(
    TEST_CURSOR IN OUT TEST_PACKAGE.TEST_TYPE,
    TEST_PARAMETER IN TEST_TABLE.ID%TYPE)
    AS
    BEGIN
    OPEN TEST_CURSOR FOR
    SELECT *
    FROM TEST_TABLE
    WHERE TEST_TABLE.ID = TEST_PARAMETER;
    END TEST_PROCEDURE;
    And
    This is the error message..
    ERROR at line 2:
    ORA-06550: line 2, column 1:
    PLS-00201: identifier 'TEST_PROC' must be declared
    ORA-06550: line 2, column 1:
    PL/SQL: Statement ignored
    I have created the package sucessfully.
    I was wondering If any one of you can advice me where I am making the mistake.
    Thank you

    CREATE OR REPLACE PROCEDURE WOLD1SIM.TEST_PROCEDURE(TEST_CURSOR IN OUT TEST_PACKAGE.TEST_TYPE,
                                                         TEST_PARAMETER IN TEST_TABLE.ID%TYPE)
    ...you have 2 parameters in your procedure WOLD1SIM.TEST_PROCEDURE(). you should also use two parameters when you execute the procedure.

  • Stored Procedure for restrict to close documents

    Hi,
    I want to create a Stored Procedure for restrict to close sales orders for some users, because in Standard Authorizations you have one option to restrict to close, but I need that some users can close quotations and also this users can´t close sales orders. I have this query :
    F @object_type='17' AND (@transaction_type='a' or @transaction_type='U' )
    BEGIN
    IF EXISTS (
    SELECT T0.DOCENTRY FROM adoc T0 WHERE T0.[ObjType] = '17'
    AND T0.[UserSign] = '1' AND    T0.[DocStatus] = 'C'   AND
    T0.DOCENTRY= @list_of_cols_val_tab_del )
    BEGIN
    SELECT @Error = 1, @error_message = 'You are not permitted to close Sales Orders'
    END
    END
    But It doesn´t work. I need help!!!
    Thanks

    Hi Jose,
    You have to correct your transaction type parameters.  When you perform close or cancel operations on document; the trasnsaction notification receives parameters u201CCu201D for Cancel and u201CLu201D for Close. So instead of checking add u201CAu201D or update u201CUu201D;  you have to modify your transaction type filters for cancel u201CCu201D or close u201CLu201D.  It will go like belowu2026
    IF @object_type='17' AND (@transaction_type='C' or @transaction_type='L')
    Please try above and let me know the results.
    Thanks & Regards,
    Nitin
    Manager, SAP Business One
    Greytrix
    It's time to think outside the box.
    Email: sap at greytrix.com | Web: www.greytrix.com
    u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026
    Development Partners for SAP B1

  • Stored Procedure for Batch Number Format and Block Duplicate Batch Number

    Hi Experts !
    I am new one in forum asking question.. I want Stored procedure for Batch Number Format. I want fix one Batch number format in Stored Procedure.
    Example :
    My Batch number format Like  BATCH00001 - It should be first five digit is text format and next five is Numeric.
    IF create Goods receipt PO or Goods receipt stage I create batch number like BATCH 00001 or any other number means don't add that document and also duplicated batch number also does not allowed. please give me the solutions. I am sorry for my bad english .

    Dear Nagarajan K.
                         Thanks for your replay ..
    IF @transaction_type IN ('A','U') AND (@object_type = '106' )
    BEGIN
    set @item = LEFT( @list_of_cols_val_tab_del, CHARINDEX(CHAR(9),  @list_of_cols_val_tab_del,1) - 1)
    set @batch = substring(@list_of_cols_val_tab_del, len(@item)+1, (CHARINDEX(CHAR(9),  @list_of_cols_val_tab_del,len(@item)+2)) - (len(@item)+1))
    --set @base =( select basetype from ibt1 where batchnum = ltrim(rtrim(replace(@batch,char(9),''))))
    set @count = (select count(*) from oibt quantity > 0 and where  batchnum = ltrim(rtrim(replace(@batch,char(9),''))))
    if @count > 1
    begin
    set @error = 1
    set @error_message = 'Please enter different Batch Code for batch ''' + @batch + ''' for item ' + @item 
    select @error, @error_message
    END
    END
                  I used above Stored Procedure. here we can use one batch number for different item but  i want to block one batch we should use one item and one time only after than we never use that batch number for same item and another item.
             After that I want format for Batch, we should follow unique Batch number for all items.

  • Stored procedure for getting host name, host instance and status of that host is it running or stopped.

    Hello all,
    yesterday I got one task in that I have to stored procedure for getting host name, host instance and status of that host is it running or stopped.
    any body knows where exactly, In which table this details are there in BizTalk databases.
    thanks

    Status of the host instance is not stored in the SQL database for you to query the status using stored procedure. You have to either use Powershell or WMI to get the status.
    In SQL, following table contains the details about the host like Name, LoginName, IsDisables etc but status of the host instance is not stored in the database.
    SELECT * FROM BizTalkMgmtDb..adm_HostInstance
    Powershell to get the status:
    http://axonolympus.nl/?page_id=186&post_id=969&cat_id=6&lang=en
    WMI to get the status:
    https://msdn.microsoft.com/en-us/library/aa561820.aspx?f=255&MSPPError=-2147217396
    https://msdn.microsoft.com/en-us/library/aa578621.aspx
    Regards,
    M.R.Ashwin Prabhu
    If this answers your question please mark it accordingly. If this post is helpful, please vote as helpful by clicking the upward arrow mark next to my reply.

  • Stored procedure for disabling all foreign key constraints ?

    hi all,
    I need a stored procedure for disabling / enable all constraints in that database schema.
    Create or replace procedure enable_disable_proc(status varchar2(3),schema_name varchar2(20))
    ---> where 'status' parameter condition should be ( YES for enable) (NO for disable)
    ---> 'schema_name' is a parameter where ,only this schema should be affected with this procedure..
    Thanks in Advance..

    Hi,
    Try this code
    /* Formatted on 2009/07/16 08:15 (Formatter Plus v4.8.8) */
    CREATE PROCEDURE enab_disab_proc (
       enforce          IN   VARCHAR2,
       current_schema   IN   VARCHAR2
    IS
       v_alter_table_sql   VARCHAR2 (2000);
    BEGIN
       FOR rec_con IN (SELECT table_name, constraint_name
                         FROM user_constraints
                        WHERE owner = current_schema)
       LOOP
          IF (enforce = 'NO')
          THEN
             v_alter_table_sql :=
                   ' alter table '
                || current_schema
                || '.'
                || rec_con.table_name
                || ' disable constraint '
                || rec_con.constraint_name;
          ELSE
             v_alter_table_sql :=
                   ' alter table '
                || current_schema
                || '.'
                || rec_con.table_name
                || ' enable constraint '
                || rec_con.constraint_name;
          END IF;
          EXECUTE IMMEDIATE v_alter_table_sql;
       END LOOP;
    END;Edited by: Salim Chelabi on 2009-07-16 05:15

  • Stored Procedure for lead code to be entered in sales order

    Hi All,
    I was trying to work on stored procedure for lead code not to be allowed to enter in sales order.
    It is system behaviour that it is allowing to take even lead code in sales order and add the transaction but my customer wants to block if any one of you could help me out to develop stored procedure.
    Thanks & regards-
    Monika

    Hi Monika,
    Try:
    If @object_type='17' and @transaction_type IN ('A','U')
    BEGIN
    If Exists (Select T0.DocEntry from ORDR
    Where T0.CardCode IN (SELECT CardCode FROM OCRD WHERE CardType = 'L')
    And T0.DocEntry = @list_of_cols_val_tab_del)
    Begin
    Select @error = 17, @error_message = 'Lead is not allowed for Sales Order'
    End
    END
    Thanks,
    Gordon

  • Stored Procedure for Zero Price in GRPO

    Hi all,
       Can anybody let me know the required stored procedure for restricting zero price in the GRPO transaction .
    Thanks in advance ,
    Aditya

    Use this in your SBO_SP_TransactionNotification
    IF @transaction_type = 'A' AND @object_type = '20'
    BEGIN
    IF EXISTS (SELECT T0.ItemCode FROM [dbo\].[PDN1\] T0
    WHERE (T0.Price = 0 OR T0.Price IS NULL) AND T0.DocEntry = @list_of_cols_val_tab_del
    BEGIN
    SELECT @Error = 1, @error_message = 'Item without Price'
    END
    END
    Suda

Maybe you are looking for

  • Mail For Exchange - Compatability/Downloads menu i...

    Using N79 SW 31.002.205.4. Up until this morning running MfE 2.9.158. Just been offerred 2.9.160 via App.Update. Post install check indicates this has been available for months - why the delay in pushing it through to App.Update? MfE 2.9.160 still no

  • Master and work Repository

    Hi, Can we create Master and work repository in one oracle schema. And can we create work2 respository in oracle schema2. Do we find any issues later. Please advice

  • Why is the file browser unable to sort by date added (Safari, Mail, etc)?

    When I use the file browser (e.g. when I browse for a file to attach to an email or browse for a file to upload through a form) and try to sort by date added, it doesn't work. I can see the column for "date added" and it displays the correct date. I

  • How can i solve a issue through remeady

    how can i solve a issue through remeady.. With Regards Prasanta

  • TOC treeing in sync with hyperlink navigation

    A requirment for the project I'm working on is to create a process map (check) that links to procedure documents (check, using hyperlink mapping).  All good, but the TOC in the left pane needs to open/tree out to the document that has been jumped to