How to come up with a magic number for any table that returns more than 32KB?

I am in a unique situation where in I am trying to retrieve values from multiple tables and publish them as XML output. The problem is based on the condition a few tables could retrieve data more than 32KB and a few less than 32KB. Less than 32KB is not an issue as XML generation is smooth. The minute it reaches greater than 32KB it generates a run time error. Just wondering if there is any way to ensure that the minute the query's results is greater than 32 kb, it should break say - if the results is 35KB, then I should break that result into 32 KB and 3kb; once done then pass this data to be published as an XML output. This is again not just for one table, but all the tables that are called in the function.
Is there any way?? I am unable to get any ideas nor have I done anything so complex from production support stand point. Would appreciate if someone can guide me on this.
The way it is, is as follows:
I have a table called ctn_pub_cntl
CREATE TABLE CTNAPP.ctn_pub_cntl
(ctn_pub_cntl_id          NUMBER(18)
,table_name                  VARCHAR2(50)
,last_pub_tms              DATE
,queue_name               VARCHAR2(50)
,dest_system              VARCHAR2(50)
,frequency                  NUMBER(6)
,status                      VARCHAR2(8)
,record_create_tms          DATE
,create_user_id                VARCHAR2(8)
,record_update_tms          DATE
,update_user_id             VARCHAR2(8)
,CONSTRAINT ctn_pub_cntl_id_pk PRIMARY KEY(ctn_pub_cntl_id)
Data for this is:
INSERT INTO CTNAPP.ctn_pub_cntl
(ctn_pub_cntl_id   
,table_name        
,last_pub_tms 
,queue_name 
,dest_system       
,frequency         
VALUES
(CTNAPP_SQNC.nextval
,'TRKFCG_SBDVSN'
,TO_DATE('10/2/2004 10:17:44PM','MM/DD/YYYY HH12:MI:SSPM')
,'UT.TSD.TSZ601.UNP'
,'SAP'
,15
INSERT INTO CTNAPP.ctn_pub_cntl
(ctn_pub_cntl_id   
,table_name        
,last_pub_tms 
,queue_name 
,dest_system       
,frequency         
VALUES
(CTNAPP_SQNC.nextval
,'TRKFCG_TRACK_SGMNT_DN'
,TO_DATE('02/06/2015 9:50:00AM','MM/DD/YYYY HH12:MI:SSPM')
,'UT.TSD.WRKORD.UNP'
,'SAP'
,30
INSERT INTO CTNAPP.ctn_pub_cntl
(ctn_pub_cntl_id   
,table_name        
,last_pub_tms 
,queue_name 
,dest_system       
,frequency         
VALUES
(CTNAPP_SQNC.nextval
,'TRKFCG_FXPLA_TRACK_LCTN_DN'
,TO_DATE('10/2/2004 10:17:44PM','MM/DD/YYYY HH12:MI:SSPM')
,'UT.TSD.YRDPLN.INPUT'
,'SAP'
,30
INSERT INTO CTNAPP.ctn_pub_cntl
(ctn_pub_cntl_id   
,table_name        
,last_pub_tms 
,queue_name 
,dest_system       
,frequency         
VALUES
(CTNAPP_SQNC.nextval
,'TRKFCG_FXPLA_TRACK_LCTN2_DN'
,TO_DATE('02/06/2015 9:50:00AM','MM/DD/YYYY HH12:MI:SSPM')
,'UT.TSD.TSZ601.UNP'
,'SAP'
,120
INSERT INTO CTNAPP.ctn_pub_cntl
(ctn_pub_cntl_id   
,table_name        
,last_pub_tms
,queue_name 
,dest_system       
,frequency         
VALUES
(CTNAPP_SQNC.nextval
,'TRKFCG_FXPLA_TRACK_LCTN2_DN'
,TO_DATE('04/23/2015 11:50:00PM','MM/DD/YYYY HH12:MI:SSPM')
,'UT.TSD.YRDPLN.INPUT'
,'SAP'
,10
INSERT INTO CTNAPP.ctn_pub_cntl
(ctn_pub_cntl_id   
,table_name        
,last_pub_tms
,queue_name 
,dest_system       
,frequency         
VALUES
(CTNAPP_SQNC.nextval
,'TRKFCG_FIXED_PLANT_ASSET'
,TO_DATE('04/23/2015 11:50:00AM','MM/DD/YYYY HH12:MI:SSPM')
,'UT.TSD.WRKORD.UNP'
,'SAP'
,10
INSERT INTO CTNAPP.ctn_pub_cntl
(ctn_pub_cntl_id   
,table_name        
,last_pub_tms
,queue_name 
,dest_system       
,frequency         
VALUES
(CTNAPP_SQNC.nextval
,'TRKFCG_OPRLMT'
,TO_DATE('03/26/2015 7:50:00AM','MM/DD/YYYY HH12:MI:SSPM')
,'UT.TSD.WRKORD.UNP'
,'SAP'
,30
INSERT INTO CTNAPP.ctn_pub_cntl
(ctn_pub_cntl_id   
,table_name        
,last_pub_tms
,queue_name 
,dest_system       
,frequency         
VALUES
(CTNAPP_SQNC.nextval
,'TRKFCG_OPRLMT_SGMNT_DN'
,TO_DATE('03/28/2015 12:50:00AM','MM/DD/YYYY HH12:MI:SSPM')
,'UT.TSD.WRKORD.UNP'
,'SAP'
,30
COMMIT;
Once the above data is inserted and committed, then I created a function in a package:
CREATE OR REPLACE PACKAGE CTNAPP.CTN_PUB_CNTL_EXTRACT_PUBLISH
IS
TYPE tNameTyp IS TABLE OF ctn_pub_cntl.table_name%TYPE INDEX BY BINARY_INTEGER;
g_tName tNameTyp;
TYPE tClobTyp IS TABLE OF CLOB INDEX BY BINARY_INTEGER;
g_tClob tClobTyp;
FUNCTION GetCtnData(p_nInCtnPubCntlID IN CTN_PUB_CNTL.ctn_pub_cntl_id%TYPE,p_count OUT NUMBER ) RETURN tClobTyp;
END CTNAPP.CTN_PUB_CNTL_EXTRACT_PUBLISH;
--Package body
CREATE OR REPLACE PACKAGE BODY CTNAPP.CTN_PUB_CNTL_EXTRACT_PUBLISH
IS
     doc           xmldom.DOMDocument;
     main_node     xmldom.DOMNode;
     root_node     xmldom.DOMNode;
     root_elmt     xmldom.DOMElement;
     child_node    xmldom.DOMNode;
     child_elmt    xmldom.DOMElement;
     leaf_node     xmldom.DOMNode;
     elmt_value    xmldom.DOMText;
     tbl_node      xmldom.DOMNode;
     table_data    XMLDOM.DOMDOCUMENTFRAGMENT;
     l_ctx         DBMS_XMLGEN.CTXHANDLE;
     vStrSqlQuery  VARCHAR2(32767);
     l_clob        tClobTyp;
     l_xmltype     XMLTYPE;
--Local Procedure to build XML header    
PROCEDURE BuildCPRHeader IS
  BEGIN
    child_elmt := xmldom.createElement(doc, 'PUBLISH_HEADER');
    child_node  := xmldom.appendChild (root_node, xmldom.makeNode (child_elmt));
    child_elmt := xmldom.createElement (doc, 'SOURCE_APLCTN_ID');
    elmt_value := xmldom.createTextNode (doc, 'CTN');
    leaf_node  := xmldom.appendChild (child_node, xmldom.makeNode (child_elmt));
    leaf_node  := xmldom.appendChild (leaf_node, xmldom.makeNode (elmt_value));
    child_elmt := xmldom.createElement (doc, 'SOURCE_PRGRM_ID');
    elmt_value := xmldom.createTextNode (doc, 'VALUE');
    leaf_node  := xmldom.appendChild (child_node, xmldom.makeNode (child_elmt));
    leaf_node  := xmldom.appendChild (leaf_node, xmldom.makeNode (elmt_value));
    child_elmt := xmldom.createElement (doc, 'SOURCE_CMPNT_ID');
    elmt_value := xmldom.createTextNode (doc, 'VALUE');
    leaf_node  := xmldom.appendChild (child_node, xmldom.makeNode (child_elmt));
    leaf_node  := xmldom.appendChild (leaf_node, xmldom.makeNode (elmt_value));
    child_elmt := xmldom.createElement (doc, 'PUBLISH_TMS');
    elmt_value := xmldom.createTextNode (doc, TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
    leaf_node  := xmldom.appendChild (child_node, xmldom.makeNode (child_elmt));
    leaf_node  := xmldom.appendChild (leaf_node, xmldom.makeNode (elmt_value));
END BuildCPRHeader;
--Get table data based on table name
FUNCTION GetCtnData(p_nInCtnPubCntlID IN CTN_PUB_CNTL.ctn_pub_cntl_id%TYPE,p_Count OUT NUMBER) RETURN tClobTyp IS
    vTblName      ctn_pub_cntl.table_name%TYPE;
    vLastPubTms   ctn_pub_cntl.last_pub_tms%TYPE;
BEGIN
            g_vProcedureName:='GetCtnData';   
            g_vTableName:='CTN_PUB_CNTL';
        SELECT table_name,last_pub_tms
        INTO   vTblName, vLastPubTms
        FROM   CTN_PUB_CNTL
        WHERE  ctn_pub_cntl_id=p_nInCtnPubCntlID;
    -- Start the XML Message generation
        doc := xmldom.newDOMDocument;
        main_node := xmldom.makeNode(doc);
        root_elmt := xmldom.createElement(doc, 'PUBLISH');
        root_node := xmldom.appendChild(main_node, xmldom.makeNode(root_elmt));
      --Append Table Data as Publish Header
        BuildCPRHeader;
      --Append Table Data as Publish Body
       child_elmt := xmldom.createElement(doc, 'PUBLISH_BODY');
       leaf_node  := xmldom.appendChild (root_node, xmldom.makeNode(child_elmt));
       DBMS_SESSION.SET_NLS('NLS_DATE_FORMAT','''YYYY:MM:DD HH24:MI:SS''');
       vStrSqlQuery := 'SELECT * FROM ' || vTblName
                      || ' WHERE record_update_tms <= TO_DATE(''' || TO_CHAR(vLastPubTms, 'MM/DD/YYYY HH24:MI:SS') || ''', ''MM/DD/YYYY HH24:MI:SS'') ' ;
                    --  ||  ' AND rownum < 16'
      DBMS_OUTPUT.PUT_LINE(vStrSqlQuery);
       l_ctx  := DBMS_XMLGEN.NEWCONTEXT(vStrSqlQuery);
      DBMS_XMLGEN.SETNULLHANDLING(l_ctx, 0);
      DBMS_XMLGEN.SETROWSETTAG(l_ctx, vTblName);
      -- Append Table Data as XML Fragment
      l_clob(1):=DBMS_XMLGEN.GETXML(l_ctx); 
      elmt_value := xmldom.createTextNode (doc, l_clob(1));
     leaf_node  := xmldom.appendChild (leaf_node, xmldom.makeNode (elmt_value));
     xmldom.writeToBuffer (doc, l_clob(1));
     l_clob(1):=REPLACE(l_clob(1),'&lt;?xml version=&quot;1.0&quot;?&gt;', NULL);
     l_clob(1):=REPLACE(l_clob(1),'&lt;', '<');
     l_clob(1):=REPLACE(l_clob(1),'&gt;', '>');
     RETURN l_clob;
     DBMS_OUTPUT.put_line('Answer is' ||l_clob(1));
     EXCEPTION
        WHEN NO_DATA_FOUND THEN
        DBMS_OUTPUT.put_line('There is no data with' || SQLERRM);
        g_vProcedureName:='GetCtnData';
        g_vTableName:='CTN_PUB_CNTL';
        g_vErrorMessage:=SQLERRM|| g_vErrorMessage;
        g_nSqlCd:=SQLCODE;
        ctn_log_error('ERROR',g_vErrorMessage,'SELECT',g_nSqlCd,p_nInCtnPubCntlID,g_vPackageName,g_vProcedureName,g_vTableName);
        WHEN OTHERS THEN
       DBMS_OUTPUT.PUT_LINE('ERROR : ' || SQLERRM);
       ctn_log_error('ERROR',g_vErrorMessage,'OTHERS',g_nSqlCd,p_nInCtnPubCntlID,g_vPackageName,g_vProcedureName,g_vTableName);
END GetCtnData;
PROCEDURE printClob (result IN OUT NOCOPY CLOB) IS
    xmlstr   VARCHAR2 (32767);
    line     VARCHAR2 (2000);
BEGIN
    xmlstr := DBMS_LOB.SUBSTR (result, 32767);
    LOOP
       EXIT WHEN xmlstr IS NULL;
       line := SUBSTR (xmlstr, 1, INSTR (xmlstr, CHR (10)) - 1);
       DBMS_OUTPUT.put_line (line);
       xmlstr := SUBSTR (xmlstr, INSTR (xmlstr, CHR (10)) + 1);
    END LOOP;
END printClob;
END CTN_PUB_CNTL_EXTRACT_PUBLISH;
If you notice my query:
vStrSqlQuery := 'SELECT * FROM ' || vTblName
                      || ' WHERE record_update_tms <= TO_DATE(''' || TO_CHAR(vLastPubTms, 'MM/DD/YYYY HH24:MI:SS') || ''', ''MM/DD/YYYY HH24:MI:SS'') ' ;
                     ||  ' AND rownum < 16'
The minute I comment
||  ' AND rownum < 16' ;
, it throws an error because this query returns around 600 rows and all of those rows need to be published as XML and the tragedy is that there is a C program in between as well i.e. C will call my packged functions and then will do all the processing. Once this is done will pass the results back to C program. So obviously C does not recognise CLOB and somewhere in the process I have to convert the CLOB to VARCHAR or instead of CLOB I have to use VARCHAR array as a return type. This is my challenge.
Anyone that can help me to find out the required magic number and also a brief know how, I would appreciate that. Many thanks in advance.

Not sure I understand which part is failing.
Is it the C program calling your packaged function? Or does the error occur in the PL/SQL code, in which case you should be able to pinpoint where it's wrong?
A few comments :
1) Using DOM to build XML out of relational data? What for? Use SQL/XML functions.
2) Giving sample data is usually great, but it's not useful here since we can't run your code. We're missing the base tables.
3) This is wrong :
vStrSqlQuery := 'SELECT * FROM ' || vTblName                     || ' WHERE record_update_tms <= TO_DATE(''' || TO_CHAR(vLastPubTms, 'MM/DD/YYYY HH24:MI:SS') || ''', ''MM/DD/YYYY HH24:MI:SS'') ' ;
A bind variable should be used here for the date.
4) This is wrong :
elmt_value := xmldom.createTextNode (doc, l_clob(1));
createTextNode does not support CLOB so it will fail as soon as the CLOB you're trying to pass exceeds 32k.
Maybe that's the problem you're referring to?
5) This is most wrong :
     l_clob(1):=REPLACE(l_clob(1),'&lt;?xml version=&quot;1.0&quot;?&gt;', NULL); 
     l_clob(1):=REPLACE(l_clob(1),'&lt;', '<'); 
     l_clob(1):=REPLACE(l_clob(1),'&gt;', '>'); 
I understand what you're trying to do but it's not the correct way.
You're trying to convert a text() node representing XML in escaped form back to XML content.
The problem is that there are other things to take care of besides just '&lt;' and '&gt;'.
If you want to insert an XML node into an existing document, treat that as an XML node, not as a string.
Anyway,
Anyone that can help me to find out the required magic number
That would be a bad idea. Fix what needs to be fixed.
And please clearly state which part is failing : the C program or the PL/SQL code?
I'd vote for PL/SQL, as pointed out in [4].

Similar Messages

  • When i open safari an apple alert comes up with a phone number.  when i call i get put on hold forever.  how do i get this off there?

    when i open safari an apple alert comes up with a phone number to call.  when i call i get put on hold forever or no one calls me back.  how do i get this off there and what is it?

    It's a scam. Do not call the number. There are several ways to recover.
    1. Some of those scam pages can be dismissed very easily. Press the key combination command-W to close the tab or window. A huge box will pop up. Press the return key and both the box and the page will close. If that doesn't happen, continue.
    2. Press and hold command-W. You may hear repeating alert sounds. While holding the keys, click the OK button in the popup. A different popup may appear, which you can cancel out of as usual.
    3. From the Safari menu bar, select
              Safari ▹ Preferences... ▹ Security
    and uncheck the box marked Enable JavaScript. Leave the preferences dialog open.
    Close the malicious window or tab.
    Re-enable JavaScript and close the preferences dialog.
    4. If the Preferences menu item is grayed out, quit Safari. Force quit if necessary. Relaunch it by holding down the shift key and clicking its icon in the Dock. None of the windows and tabs will reopen.
    After closing the malicious page, from the menu bar, select
              Safari ▹ Preferences... ▹ Privacy ▹ Remove All Website Data
    to get rid of any cookies or other data left by the server. Open your Downloads folder and delete anything you don't recognize.

  • Solaris boot images fail with bad magic number

    hi guys, have had Solaris on boxes for allmost 10 years. I have never installed sol10, and I have a problem
    1. I download the zip file, then use winrar to unzip them..
    2. burt the image with nero 7
    when my SunBlade 1000 comes up I do the Stop-A, and from the Ok promt
    I do boot cdrom
    this fails with "bad magic number" I have redown loaded it and reburnt it with nero reinstalled
    and also changed out the DVD on SunBlade
    3 I found a copy of Solaris 8 and the I got back a 'bitch' where is Solaris 9 so, most likely the drive is OK
    HELP
    Cris Harrison

    Hello Cris,
    unfortunately I don't understand your last sentence !
    I found a copy of Solaris 8 and the I got back a '*****' where is Solaris 9 so, most likely the drive is OK
    If this was a Solaris 8 (7/01 or later) DVD that did successfully boot, your DVD drive firmware (assuming that this is the Sun Toshiba SD-M1401) is up-to-date. If the DVD drive has firmware 1007, an update to 1009 is required to boot from DVD. otherwise you won't be able to boot from DVD (boot from CD works and a DVD can be automounted/mounted).
    Partial output of probe-scsi
    Before update:
    Unit 0 Removable Read Only device TOSHIBA DVD-ROM SD-M14011007
    After update:
    Unit 0 Removable Read Only device TOSHIBA DVD-ROM SD-M14011009
    [*Patch 111649-04 - Toshiba DVD 1401 firmware update*|http://sunsolve.sun.com/search/advsearch.do?collection=PATCH&type=collections&queryKey5=111649&toDocument=yes]
    when my SunBlade 1000 comes up I do the Stop-A, and from the Ok promt ...
    Instead of trying to directly boot, disable auto-boot and retry after a clean power-on.
    Break with Stop-A
    setenv auto-boot? false
    reset-all
    boot cdrom
    Michael

  • How to generate report with dynamic variable number of columns?

    How to generate report with dynamic variable number of columns?
    I need to generate a report with varying column names (state names) as follows:
    SELECT AK, AL, AR,... FROM States ;
    I get these column names from the result of another query.
    In order to clarify my question, Please consider following table:
    CREATE TABLE TIME_PERIODS (
    PERIOD     VARCHAR2 (50) PRIMARY KEY
    CREATE TABLE STATE_INCOME (
         NAME     VARCHAR2 (2),
         PERIOD     VARCHAR2 (50)     REFERENCES TIME_PERIODS (PERIOD) ,
         INCOME     NUMBER (12, 2)
    I like to generate a report as follows:
    AK CA DE FL ...
    PERIOD1 1222.23 2423.20 232.33 345.21
    PERIOD2
    PERIOD3
    Total 433242.23 56744.34 8872.21 2324.23 ...
    The TIME_PERIODS.Period and State.Name could change dynamically.
    So I can't specify the state name in Select query like
    SELECT AK, AL, AR,... FROM
    What is the best way to generate this report?

    SQL> -- test tables and test data:
    SQL> CREATE TABLE states
      2    (state VARCHAR2 (2))
      3  /
    Table created.
    SQL> INSERT INTO states
      2  VALUES ('AK')
      3  /
    1 row created.
    SQL> INSERT INTO states
      2  VALUES ('AL')
      3  /
    1 row created.
    SQL> INSERT INTO states
      2  VALUES ('AR')
      3  /
    1 row created.
    SQL> INSERT INTO states
      2  VALUES ('CA')
      3  /
    1 row created.
    SQL> INSERT INTO states
      2  VALUES ('DE')
      3  /
    1 row created.
    SQL> INSERT INTO states
      2  VALUES ('FL')
      3  /
    1 row created.
    SQL> CREATE TABLE TIME_PERIODS
      2    (PERIOD VARCHAR2 (50) PRIMARY KEY)
      3  /
    Table created.
    SQL> INSERT INTO time_periods
      2  VALUES ('PERIOD1')
      3  /
    1 row created.
    SQL> INSERT INTO time_periods
      2  VALUES ('PERIOD2')
      3  /
    1 row created.
    SQL> INSERT INTO time_periods
      2  VALUES ('PERIOD3')
      3  /
    1 row created.
    SQL> INSERT INTO time_periods
      2  VALUES ('PERIOD4')
      3  /
    1 row created.
    SQL> CREATE TABLE STATE_INCOME
      2    (NAME   VARCHAR2 (2),
      3       PERIOD VARCHAR2 (50) REFERENCES TIME_PERIODS (PERIOD),
      4       INCOME NUMBER (12, 2))
      5  /
    Table created.
    SQL> INSERT INTO state_income
      2  VALUES ('AK', 'PERIOD1', 1222.23)
      3  /
    1 row created.
    SQL> INSERT INTO state_income
      2  VALUES ('CA', 'PERIOD1', 2423.20)
      3  /
    1 row created.
    SQL> INSERT INTO state_income
      2  VALUES ('DE', 'PERIOD1', 232.33)
      3  /
    1 row created.
    SQL> INSERT INTO state_income
      2  VALUES ('FL', 'PERIOD1', 345.21)
      3  /
    1 row created.
    SQL> -- the basic query:
    SQL> SELECT   SUBSTR (time_periods.period, 1, 10) period,
      2             SUM (DECODE (name, 'AK', income)) "AK",
      3             SUM (DECODE (name, 'CA', income)) "CA",
      4             SUM (DECODE (name, 'DE', income)) "DE",
      5             SUM (DECODE (name, 'FL', income)) "FL"
      6  FROM     state_income, time_periods
      7  WHERE    time_periods.period = state_income.period (+)
      8  AND      time_periods.period IN ('PERIOD1','PERIOD2','PERIOD3')
      9  GROUP BY ROLLUP (time_periods.period)
    10  /
    PERIOD             AK         CA         DE         FL                                             
    PERIOD1       1222.23     2423.2     232.33     345.21                                             
    PERIOD2                                                                                            
    PERIOD3                                                                                            
                  1222.23     2423.2     232.33     345.21                                             
    SQL> -- package that dynamically executes the query
    SQL> -- given variable numbers and values
    SQL> -- of states and periods:
    SQL> CREATE OR REPLACE PACKAGE package_name
      2  AS
      3    TYPE cursor_type IS REF CURSOR;
      4    PROCEDURE procedure_name
      5        (p_periods   IN     VARCHAR2,
      6         p_states    IN     VARCHAR2,
      7         cursor_name IN OUT cursor_type);
      8  END package_name;
      9  /
    Package created.
    SQL> CREATE OR REPLACE PACKAGE BODY package_name
      2  AS
      3    PROCEDURE procedure_name
      4        (p_periods   IN     VARCHAR2,
      5         p_states    IN     VARCHAR2,
      6         cursor_name IN OUT cursor_type)
      7    IS
      8        v_periods          VARCHAR2 (1000);
      9        v_sql               VARCHAR2 (4000);
    10        v_states          VARCHAR2 (1000) := p_states;
    11    BEGIN
    12        v_periods := REPLACE (p_periods, ',', ''',''');
    13        v_sql := 'SELECT SUBSTR(time_periods.period,1,10) period';
    14        WHILE LENGTH (v_states) > 1
    15        LOOP
    16          v_sql := v_sql
    17          || ',SUM(DECODE(name,'''
    18          || SUBSTR (v_states,1,2) || ''',income)) "' || SUBSTR (v_states,1,2)
    19          || '"';
    20          v_states := LTRIM (SUBSTR (v_states, 3), ',');
    21        END LOOP;
    22        v_sql := v_sql
    23        || 'FROM     state_income, time_periods
    24            WHERE    time_periods.period = state_income.period (+)
    25            AND      time_periods.period IN (''' || v_periods || ''')
    26            GROUP BY ROLLUP (time_periods.period)';
    27        OPEN cursor_name FOR v_sql;
    28    END procedure_name;
    29  END package_name;
    30  /
    Package body created.
    SQL> -- sample executions from SQL:
    SQL> VARIABLE g_ref REFCURSOR
    SQL> EXEC package_name.procedure_name ('PERIOD1,PERIOD2,PERIOD3','AK,CA,DE,FL', :g_ref)
    PL/SQL procedure successfully completed.
    SQL> PRINT g_ref
    PERIOD             AK         CA         DE         FL                                             
    PERIOD1       1222.23     2423.2     232.33     345.21                                             
    PERIOD2                                                                                            
    PERIOD3                                                                                            
                  1222.23     2423.2     232.33     345.21                                             
    SQL> EXEC package_name.procedure_name ('PERIOD1,PERIOD2','AK,AL,AR', :g_ref)
    PL/SQL procedure successfully completed.
    SQL> PRINT g_ref
    PERIOD             AK         AL         AR                                                        
    PERIOD1       1222.23                                                                              
    PERIOD2                                                                                            
                  1222.23                                                                              
    SQL> -- sample execution from PL/SQL block
    SQL> -- using parameters derived from processing
    SQL> -- cursors containing results of other queries:
    SQL> DECLARE
      2    CURSOR c_period
      3    IS
      4    SELECT period
      5    FROM   time_periods;
      6    v_periods   VARCHAR2 (1000);
      7    v_delimiter VARCHAR2 (1) := NULL;
      8    CURSOR c_states
      9    IS
    10    SELECT state
    11    FROM   states;
    12    v_states    VARCHAR2 (1000);
    13  BEGIN
    14    FOR r_period IN c_period
    15    LOOP
    16        v_periods := v_periods || v_delimiter || r_period.period;
    17        v_delimiter := ',';
    18    END LOOP;
    19    v_delimiter := NULL;
    20    FOR r_states IN c_states
    21    LOOP
    22        v_states := v_states || v_delimiter || r_states.state;
    23        v_delimiter := ',';
    24    END LOOP;
    25    package_name.procedure_name (v_periods, v_states, :g_ref);
    26  END;
    27  /
    PL/SQL procedure successfully completed.
    SQL> PRINT g_ref
    PERIOD             AK         AL         AR         CA         DE         FL                       
    PERIOD1       1222.23                           2423.2     232.33     345.21                       
    PERIOD2                                                                                            
    PERIOD3                                                                                            
    PERIOD4                                                                                            
                  1222.23                           2423.2     232.33     345.21                       

  • Verizon Iphone 4 without sim card is locked because of forgotten passcode. Can't access serial number because of having no sim tray. Never synced with itunes. Recovery mode always comes up with an error. are there any solutions on resetting the phone?

    Verizon Iphone 4 without sim card is locked because of forgotten passcode. Can't access serial number because of having no sim tray. Never synced with itunes. Recovery mode always comes up with an error. are there any solutions on resetting the phone?

    Are you looking for the serial number or the IMEI? If the phone was active on your Verizon acount, Verizon can give you the IMEI.

  • How do you find the iPad phone number for cellular data?

    How do you find the iPad phone number for cellular data?

    I know this post was a long time ago but people still seem to be viewing it.
    Quickest way:
    Via the iPad on 3G, go to http://m.telstra.com. The service number is then displayed and you are given the option to recharge.

  • My DVD write comes up with an error -43. Never done that before. What could be the reason. Please help

    My DVD write comes up with an error -43. Never done that before. What could be the reason. Please help

    iDVD is not involved in the process at all.
    What you want to do is create a data disk on a DVD.  That's done by inserting a blank DVD disc in the optical drive, Option+drag the files you want to backup onto the disc icon on the desktop and then drag that icon to the Trash bin in the dock which turns into the Burn feature. 
    Try that (the Option+drag and see if you can get your files to burn.
    OT

  • Stuck with Exact fetch returns more than requested number of rows!

    Hi
    I've written the following code where i want to insert an id number into a package to update a record.
    declare myvar NUMBER; begin SELECT App.id into myvar FROM people_units pu LEFT OUTER JOIN(
    SELECT pu.id,pu.record_date,pu.unit_instance_code,pu.person_code,pu.calocc_code,pu.record_date As received
    FROM people_units pu) App ON pu.person_code = App.person_code AND Trunc(pu.record_date) = Trunc(App.record_date)
    WHERE pu.id = 79474; ebs_units_pkg.AddProgressHistory(myvar,'AUTO');end;
    when i run the query in SQL i get the error message ORA-01422 - Exact fetch returns more than expected number of rows.
    Can anyone help me rseolve this error? The select statement may return more than one row which im guessing is the cause of the problem. If the select statement does return more than one value. 2 rows for example, i would like the package to update the 2 rows. Ive never really done any work with PL/SQL before so at a loss at where to begin!!

    Do the select and the update all in one step. It will be much easier then.
    Example:
    UPDATE people_units
    SET yourColumn = calculatedValue
    WHERE id = 79474

  • I'm trying to move my photos from my iphone to my PC, every time I go to my Computer it comes up with PhotoStream and iPhone , unfortunately this does that have all my photos from iPhone in it. Can anyone help me?

    I'm trying to move my photos from my iphone to my PC, every time I go to my Computer it comes up with PhotoStream and iPhone , unfortunately this does that have all my photos from iPhone in it. Can anyone help me?
    I'm using the most up to date software.
    Thanks

    Thanks for that, on the sync via iTunes, when my iphone is connected to iTunes via USB my photos tab says my iphone but I can never see any pics there. If I press Sync it still doesn't show anything.
    Correction from my original post, it only comes up with PhotoStream on my computer when I'm connected via USB.

  • How do I get the activation serial number for

    I've downloaded Photoshop CS6 Extended trial version. How do I get the activation serial number for this software

    You will need to buy the software.

  • Firstly I updated my ipad into ios7 and after watching the video by Apple, iWork, pages and numbers are free for download after updating iOS 7. How can I download iWork pages and number for free?

    Firstly I updated my ipad into ios7 and after watching the video by Apple, iWork, pages and numbers are free for download after updating iOS 7. How can I download iWork pages and number for free? Please help me.

    stevejobsfan is correct; iwork for ios is free only for new purchases of new ios devices. A good work around (if you have wifi connectivity) is going to the icloud website on your ipad, and working on your document.
    A word of caution (the real reason I am responding to your post). If you do a lot of 'formatting' of a document on iwork for mac, and then save it in icloud; you will probably loose most of the formatting you have done (this will be true if you oppen the document in iwork for ios; also) It happened to me, and I did not duplicate the document before saving it to icloud; I lost at least an hours worth of work.

  • How do I enter my new registration number for Quicktime Pro?

    How do I enter my new registration number for quicktime pro?

    Open QuickTime Player 7 and then the Edit menu /  Preferences / Register

  • How do you find Apple Support phone number for warranty for Mac Mini?

    How do you find Apple Support phone number for warranty for Mac Mini?

    1-800-APL-CARE? Should be able to direct you to the proper person.

  • 140063685933 this is the receipt no Apart of two purchase there all rest I never received was a problem with the system they couldn't be download and naw you are charging me  Haw unprofessional is that and more than an hour can't find how to get to custom

    140063685933 this is the receipt no
    Apart of two purchase there all rest I never received was a problem with the system they couldn't be download and naw you are charging me
    Haw unprofessional is that and more than an hour can't find how to get to customer service to correct the mistake
    Just so fed up will never ever pitches anything waiting of time and money  

    Apple is not here. Apple does not answer questions here. There are only volunteer users here.
    The charge to your credit card takes place before you download the app.
    If you are having problems downloading the apps that you bought, you will need to explain the issue in detail if you wish someone to help you.

  • Hi I have a problem with my licence number for Lightroom

    Hi I have a problem with my licence number for Lightroom, has been forced to re-install lightroom again but, have downloaded a trial version of adobe but now works license number are not, there are some who can help me with what is going wrong. Thanks Henrik

    Download Lightroom 5 from Product updates and install, use your serial number

Maybe you are looking for