JDBC lookup returing only single row

Hi All,
   I am doing a jdbc lookup using graphical function in message mapping.  I am able to connect the database and retrive result, but only one row.
  I am expecting mulitple rows as ouput in lookup. if i am excuting the same query directly in database i am getting multiple rows as output.
  I am coonecting to a sql 2005 database .
Please advice how to get multiple rows in output.
is ther any additional configuration , i have to do for getting multiple rows
Regards
Pradeep P N

Hi,
You need to use some global variables and store your output..if want to use multiple rows data..
as the return is type string you can return only row from the UDF...
I have used global varaibles to store the data and retrieved from the same where ever needed..
HTH
Rajesh

Similar Messages

  • XMLTable - Extract single row among 2 XML tags

    Hello,
    Aim to extract the BRAND and its COST and I am able to extract with without any problem using XMLTable.
    CREATE TABLE xml_tab (seqno number default 1, xml_data XMLType);
    INSERT INTO xml_tab
    VALUES
    (1, XMLType('<PRODUCTS>
    <LAPTOPS>
    <NOTEBOOK BRAND="HP">1000</NOTEBOOK>
    <NOTEBOOK BRAND="LENOVA">2000</NOTEBOOK>
    </LAPTOPS>
    </PRODUCTS>'));
    SELECT t.seqno, tx.* FROM xml_tab t,
    XMLTABLE('/PRODUCTS/LAPTOPS/NOTEBOOK' PASSING t.xml_data
    COLUMNS brandname CHAR(20) PATH '@BRAND',
    cost CHAR(20) PATH '.') tx
    WHERE brandname in ('HP', 'LENOVA') AND seqno = 1;
    Outpupt
    SEQNO BRANDNAME COST
    1 HP 1000
    1 LENOVA 2000
    Below query will demonstrate the problem I am facing and need your kind help to resovle it.
    INSERT INTO xml_tab
    VALUES
    (2, XMLType('<PRODUCTS>
    <LAPTOPS>
    <NOTEBOOK BRAND="HP">3000</NOTEBOOK>
    <NOTEBOOK BRAND="HP">1400</NOTEBOOK>
    <NOTEBOOK BRAND="LENOVA">5000</NOTEBOOK>
    </LAPTOPS>
    </PRODUCTS>'));
    (Below query is not working)
    SELECT t.seqno, tx.* FROM xml_tab t,
    XMLTABLE('/PRODUCTS/LAPTOPS/NOTEBOOK[1]' PASSING t.xml_data
    COLUMNS brandname CHAR(20) PATH '@BRAND',
    cost CHAR(20) PATH '.') tx
    WHERE brandname in ('HP', 'LENOVA') AND seqno = 2;
    My requirement is to display only single row of HP and LENOVA brand even if there are multiple XML tags of one brand. Therefore, desired output is*
    SEQNO BRANDNAME COST
    2 HP 3000
    2 LENOVA 5000
    Kindly suggest.
    Thanks in advance
    Sandeep
    Edited by: Sandeep98191 on Sep 22, 2012 9:24 PM

    WITH t as (
               SELECT  t.seqno,
                       tx.*,
                       row_number() over(partition by brandname order by rownum) rn
                 FROM  xml_tab t,
                       XMLTABLE(
                                '/PRODUCTS/LAPTOPS/NOTEBOOK'
                                PASSING t.xml_data
                                COLUMNS
                                  brandname CHAR(20) PATH '@BRAND',
                                  cost CHAR(20) PATH '.'
                               ) tx
                 WHERE brandname in ('HP', 'LENOVA')
                   AND seqno = 2
    select  seqno,
            brandname,
            cost
      from  t
      where rn = 1
         SEQNO BRANDNAME            COST
             2 HP                   3000
             2 LENOVA               5000
    SQL> SY.

  • Single row select in ALV Grid

    HI,
    I want to make my ALV Grid only single row select enabled, can some one guide me which variable should be set for the same.
    Thanks and Regards,
    Harsh

    If you are using OO for alv then
      call method grid1->get_selected_rows
        importing
          et_index_rows = i_sel_alvrows[].
      call method cl_gui_cfw=>flush.
      describe table i_sel_alvrows lines v_dbcnt.
      if i_sel_alvrows[] is initial.
    * Info message : Please select a row
        message i176.                        " Please select a row'.
      endif.
      if v_dbcnt gt 1.
    * Info message : Multiple Row Selection not  possible
        message i177.                        " Multiple Row Selection not
        " possible'
      endif.
    or if your using REUSE then
    form user_command using p_ucomm type sy-ucomm
                         rs_selfield type  slis_selfield.
    " Check the rs_selfield-tabindex value here
    " you may get some clue here
    endform.

  • JDBC Query Single Row service Parse Query

    Using JDBC Query Single Row service on an Oracle database,
    I specify a SQL statement like this:
    select abc, to_char(aDate, 'MM/DD/YYYY') from xyz where def = 123
    then I click the "Parse Query" button to try to map the query results to my variables, but the mapping window gives me 3 fields instead of 2:
    1. abc
    2. to_char(aDate)
    3. 'MM/DD/YYYY'
    how do I let it understand that there are only 2 fields in the results so that I can map it properly?
    thanks

    Got a new minor issue unrelated to the above, but I don't want to flood this forum with another new topic, so I'll stick this new thing here.
    I have a very simple process that only contains this JDBC Query Single Row service.
    In this query single row service, at the bottom of the property sheet, there's a section where it says "number of rows retrieved"...
    now, if I map this 'number of rows' to a variable (I set the variable's type as "int"), when I call my process (as a web service), it returns me nothing... all the output parameters are empty.
    If I remove the mapping of "number of rows", that is, there's nothing in that bottom section. Then my process works correctly, all the output variables contain correct data from my database.
    Has anybody encountered this? what's your solution please?

  • In Table Control How to get only a single row .

    Hi
    In Table Control How to get only a single row .I am able to decrease it its height to 4 but then 2 rows is getting dsplayed .I want only one row to be display and 2nd row should be deactivated or not visible.
    regards
    Avik
    Edited by: Julius Bussche on Jan 30, 2009 1:10 PM
    Removed friendly greeting from the subject title

    Hi Avik
    use this code it will help you.
    MODULE passdata OUTPUT.
      READ TABLE it_revision INTO wa_rev INDEX tab_clc-current_line.
      IF sy-subrc = 0.
        LOOP AT SCREEN.
          IF screen-group1 = '111'.      " 111 IS THE GROUP NAME
            screen-input = 1.          " input mode
            screen-active = 1.         " input mode.
            MODIFY SCREEN.
          ENDIF.
        ENDLOOP.
      ELSE.
        LOOP AT SCREEN.
          IF screen-group1 = '111'.       "GROUP NAME
            screen-input = 0.           " display mode
            screen-active = 1.          " DISPLAY MODE.
            MODIFY SCREEN.
          ENDIF.
        ENDLOOP.
      ENDIF.
    ENDMODULE.                 " PASSDATA  OUTPUT
    Make sure in group tou are passing the field name that you want in input mode on the base of other field
    Hope it will help you.
    Thanks
    Arun Kayal.

  • Refreshing only the single row of  ADF Table

    Hi All,
    I have a webcenter application where the ADF Applications has been deployed.Now the Data is coming onto the ADF Tables from a webservice.In that particular table i need to refresh only the single row(whichever selected by the user to edit ) or even a particular field with the updated values as well as need to validate and to create a message box saying about the errors if the validation goes wrong.
    Please suggest!!

    Hi,
    if "updated value" mean that the value got changed on the middle tier (not the browser client) then the update requires the table to be partially refreshed. If the user edits a row and in this row has dependent fields, then this can be achieved by partially refreshing the column. Note that ADF Faces tables don't refresh just one cell
    Frank

  • How to query on a single row form using only one page

    Hi APEX experts, I am just a beginner in apex and I face several problems on development. Despite that the forum helps me a lot and your answers to other people are valuable , I have stacked into something. Could you please someone tell me : if there is a way to define a single row form page based on table in which I could query and update without using a tabular page (to call the single row form). I want only to use only one page. Does APEX has this functionality? Thank you very much?

    I haven't tried it, but I am going to guess that yes it's possible (or if I were going to do this, this is what I'd try and I suspect it will work).
    If you take a moment and step back and look at what the wizard does when building a "form on a table with report", all it does is build two pages with page 1 (report overview with drill-down Edit button or link usually) calling page 2 (form) and setting the PK field on the page 2 form with an automated row fetch process and built-in DML processes. It's not that hard.
    Page 2 really doesn't care what the calling page was in order to query a single row; it just cares that ANY caller sets the primary key value for the ARF process to fetch a row. So I would just make page 2 call itself. This is what I'd do (and you might have to fine-tune little things that I might not have forseen but I think this will work).
    For the sake of example, let's say our table is PARTS and in it is a PART_ID, PART_NUMBER, PART_DESCRIPTION, PART_COST, etc. Assume PART_ID is the primary key and sequentially assigned by the DB in a trigger and is functionally meaningless to the user and is for PK purposes only. Let's assume PART_NUMBER is a unique key (although not the PK) by which the user will "know" a unique row (since the PK of PART_ID is more internal and not meaningful to the user). Assume PART_DESCRIPTION, PART_COST, etc. are just attributes.
    1. Use the wizard and build a "form on a table with report". This is just to get the handy dandy ARF process and DML processes, validations, etc. all generated for you. Let's assume the report page is Page 1 and the form is Page 2.
    2. When done, delete the report page entirely (so delete page 1).
    3. Edit the form page (page 2) and change any branch references from the nonexistent page 1 to now be page 2.
    Now here's the part where something has to set the internal P2_PART_ID field when page 2 is run. So why not set it from itself from something the user will uniquely enter?
    4. Create a P2_PART_NUMBER_FETCH item (text item is fine or if you want a LOV or whatever that's good too....whatever works. For clarity, you might even want to create a separate "search" or "query" region separate and above your existing form region to set this field apart visually so users know it's a search field. Source for this field should be "only when current value in session state is null".
    5. Created some sort of "GO" button to go along with the P2_PART_NUMBER_FETCH field.
    6. Make sure none of your existing post-submit processes fire when GO is pressed (edit all of the computations and validations and processes and ensure that they have conditions such that they do not fire when the submit value is "GO", so like a PL/SQL expression and set to v('REQUEST')<> 'GO').
    7. Add a new validation to your page that only fires when GO is pressed. Have it validate only when GO is pressed. Have it validate that P2_PART_NUMBER_FETCH is not null.
    8. Add a new PL/SQL process to your post-submit processing that only fires when GO is pressed. Have it look up to the database based on P2_PART_NUMBER_FETCH and get the PART_ID that corresponds to the part number the user entered and set the part number, something like this (even better for style and reusability if you embed this in a DB package function and call it):
    SELECT part_id
    INTO :P2_PART_ID
    FROM PARTS
    WHERE PART_NUMBER = :P2_PART_NUMBER_FETCH;
    9. Not sure if the branches that were generated will suffice for this (might need to add a new one...review what you have and see) but the bottom line is that the page should branch to itself (page 2) and not clear the cache.
    10. When the page repaints, since :P2_PART_ID is now populated in session state (again, page 2 should not care how it got populated...only should care that it did get populated by anything (including itself)), the automated row fetch (ARF) should fire and query up the row from the database for editing.

  • ALV Grid Single Row Selection Only

    Hi,
    I have a requirement to select a single row in an ALV grid using class
    I tried with   layout-sel_mode   = 'B'  its not working, and don't want to use
      call method g_grid->get_selected_rows
        importing
          et_row_no = lt_row_no.
    and check for number of rows and giving error message " select only one row".
    Is there any other way to tackle this issue
    Thanks
    aRs

    Hi,
    DATA:
    * Internal table for indexes of selected rows
    gi_index_rows TYPE lvc_t_row,
    * Information about 1 row
    g_selected_row LIKE lvc_s_row.
      CALL METHOD go_grid->get_selected_rows
        IMPORTING
          et_index_rows = gi_index_rows.
      DESCRIBE TABLE gi_index_rows LINES l_lines.
    Here the L_Lines will contain the number of rows selected
    Regards
    Sudheer

  • How to display total in alv only for single row

    Hello,
    I wish to replace VAT field in my ALV OUTPUT from another ITAB using READ TABLE. But in ALV output I have multiple rows for one document number.
    So the value is assigning to all the rows in output, is it possible to assign that VAT value to only one row ( to any one record from output with corresponding document number) .
    Thanks in advance.
    Regards,
    Ritesh Inamdar

    Hi Sudeesh,
    I am fetching data for PO details, GR details along with condition types of PO.
    All data is collected in ALV OUTPUT itab, after this I am trying to assign the values of VAT from another itab in ALV OUTPUT LOOP using READ TABLE with reference to PO-PO_ITEM-CONDITION_TYPE.
    Now, when the alv loop is getting executed and in that I am fetching data for VAT using READ statement, the program is assigning VAT to all records of output alv with comparison of PO-PO_ITEM-CONDITION_TYPE.
    see:
    LOOP AT it_alv ASSIGNING <fs-alv>.
         READ TABLE it_vat ASSIGNING <fs-vat>
              WITH KEY ebeln = <fs-alv>-ebeln
                               posnr = <fs-alv>-posnr
                                kschl = 'JVCS'.
         IF sy-subrc = 0.
              <fs-alv>-vat = <fs-vat>-kbetr / 10.
      <fs-alv>-vat_val = <<fs-alv>-vat * it_alv-menge.
         END IF.
    END LOOP.
    Please refer above.
    Thanks.
    Ritesh

  • Projects only display single row when not in fullscreen

    Hi
    I've just updated to 3.4.5 an coincidentally used fullscreen for the first time so I'm not certain which action has caused this.
    After exiting fullscreen, my Projects(and thumnails in the browser) no longer display in a grid but as a single row that dissapears off the right side of the scrren and cannot be scrolled.
    Additionall the thumnail size slider and other controls that should be in the bottom right have dissapeared
    Fullscreen still works fine both in projects view and browser.
    I was wondering if anyone else has experienced similar behavior or can point me in the right direction.
    Things trie so far:
    Check other libraries (all the same)
    Repair Library (no difference)
    Rebuild Library (No Difference)

    This may be a problem of an unreadable Aperture preferences file:
    Try the following:
    Remove the Aperture's user preferences from the User Library as described here:
    Aperture 3: Troubleshooting Basics
    Note:
    Your User Library is hidden by default in 10.7.5 - to open it in a Finder window use the "Go" menu from the Finder's main menu bar.
    Quit Aperture, if it is running. Log off and on again.
    Open the user library by using the Finder's "Go > Go to Folder" menu and hold down the options-key, until "Library" appears in the drop down menu. Select it.
    In the widow that will open, scroll down to "Preferences"
    From the "Preferences" folder  remove "com.apple.Aperture.plist".
    Then try to launch Aperture again.
    But deleting the "Preferences" file will cause Aperture to forget the preferences settings. Be prepared to have to reset all options you set using the Aperture Preferences panel.
    Regards
    Léonie

  • Selecting only one row at a time

    Hi experts,
    i have following doubt regarding selecting rows from a db:
    Is there any way of selecting only one row AT A TIME from a dabase just to collect the data in rows instead of in a unique document containing all the rows?
    I would like you to ellaborate on this as i need to send only one row to the IE, and then other row, and so on... without throwing any error!
    I have seen that there are SELECT SINGLE and SELECT UP TO 1 ROW, but these two methods are only useful when retrieving only one row, and that does not match my requirements. I need to process all the rows but one by one..
    I know that we can use the receiver jdbc adapter as if it was a sender by means of its specific datatype, but how to do it row by row??
    Hope i had explained well..
    Thanks in advance and best regards,
    David

    Hi kiran,
    Yes, my table has 5 not null fields but i am selecting and updating fixes values so i think that I will definetely go for the next solution:
    SELECT * FROM t1 WHERE status='0' and ROWNUM<2;
    UPDATE t1 SET status='1' WHERE status='0' and ROWNUM<2;
    My only concern is if the update will take the same row that the select.... BTW, I think it will
    ..What do you guys think?
    I ve been trying to operate with your proposed queries but i received some errors. Your queries are very interesting but i think that with the above ones i meet my requirements as the status field will be 0 for not processed rows and 1 for precessed ones (and the update will look for the row that meets the same 'where' clause than the select, and then, and only then, it will set status='1').
    The only thing i have to care about is what i questioned before.
    Thanks a lot and best regards,
    David

  • How to use a global variable for reading a query resultset in JDBC lookup?

    Hi Friends,
    Using JDBC lookup, I am trying to read from a table Emp1 using a user defined function. In PI 7.0, this function returns values of a single column only even if you fire a " Select * " query. I am planning to use a global variable(array) that stores individual column values of the records returned by a "select *" query. Need pointers on as to how a global variable can be declared and used to acheive the above scenario. Kindly explain with an example. Any help would be appreciated.
    Thanks,
    Amit.

    Hi Amit,
    Sounds like a good idea but then you would need an external db and update the table in a thread safe way !.
    Regarding your question as to how to work with global variable please refer https://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/1352. [original link is broken] [original link is broken] [original link is broken]
    Rgds
    joel

  • Mapping JDBC lookup: Passing values to multiple fields at target

    Hi all
    i my scenario  i am using mapping JDBC lookup ,and it is working sucessfully.
    but i need to select 4 fields from lookups select query and passing it to 3 different target field at target MT.
    if i use Global container object methods,than only 1 field i can store inglobal container variable..
    and return it 1 the target fields...
    BUT how do i pass 4 fields ,result of the select query to 4 different fields at target MT..
    query :"
    Select BPNO,emp,BENR,bacepack from Ztable where BPNO='"+BPNO[0]+"'";
    Regards
    AjayP

    Hi,
    I have to fetch 3 values and populate it to the 3 fields in the target. The UDF am using is as attached. This UDF is for fetching one value. Kindly tell me about the changes I will have to make to fetch 3 values instead of 1 value.
    String Query = " ";
    Channel channel = null;
    DataBaseAccessor accessor = null;               
    DataBaseResult resultSet = null;                
    // Query to retrieve the PROP value for the particular source value passed.
    Query ="Select PROP from TANKS where ID='" + ID[0] + "' ";
    try{
    //Determine a channel, as created in the Configuration
    channel = LookupService.getChannel("<Business Service>","<Communication Channel>");
    //Get a system accessor for the channel. As the call is being made to an DB, an DatabaseAccessor is obtained.
    accessor = LookupService.getDataBaseAccessor(channel);
    //Execute Query and get the values in resultset
    resultSet = accessor.execute(Query);
    for(Iterator rows = resultSet.getRows();rows.hasNext();){
    Map rowMap = (Map)rows.next();                      
    result.addValue((String)rowMap.get("PROP"));       
    catch(Exception ex){
    result.addValue(ex.getMessage());
    finally{
    try{
    if (accessor!=null) accessor.close();
    catch(Exception e){
    result.addValue(e.getMessage());

  • Single row from one-to-many

    I am having trouble with a query, I need a single row from a 1-to-many relationship that is prioritized by certain ID's.
    Department Table - dept_id,dept_name
    Employee Table - emp_id, emp_name
    D-E-Lookup Table - dept_id,emp_id
    Employee ID priority are 5,8,9,21,33,78
    I need each department name with the associated employee name.
    There should be only one row per department.
    If that department does not have empID 5, than 8, if not 8 then 9, if not 9 than 21, etc
    Any help would be greatly appreciated.

    How about this:
    WITH departments AS
        ( SELECT ROWNUM AS deptno, COLUMN_VALUE AS dname
          FROM   TABLE(sys.dbms_debug_vc2coll('Sales','IT','Research')) )
       , employees AS
        ( SELECT ROWNUM AS empno, COLUMN_VALUE AS ename
          FROM   TABLE(sys.dbms_debug_vc2coll('Bennett','Parkman','Nakamura')) )
       , department_assignments AS
         ( SELECT 1 AS deptno, 1 AS empno, 5 AS priority FROM dual UNION ALL
           SELECT 1 AS deptno, 2 AS empno, 8 AS priority FROM dual UNION ALL
           SELECT 1 AS deptno, 3 AS empno, 9 AS priority FROM dual UNION ALL
           SELECT 2 AS deptno, 2 AS empno, 8 AS priority FROM dual UNION ALL
           SELECT 2 AS deptno, 3 AS empno, 9 AS priority FROM dual UNION ALL
           SELECT 3 AS deptno, 1 AS empno, 9 AS priority FROM dual UNION ALL
           SELECT 3 AS deptno, 3 AS empno, 21 AS priority FROM dual )
    SELECT dname, ename, priority
    FROM   ( SELECT d.dname
                  , e.ename
                  , dp.priority
                  , DENSE_RANK() OVER (PARTITION BY d.deptno ORDER BY dp.priority) AS ranking
             FROM   departments d
                    LEFT JOIN department_assignments dp ON dp.deptno = d.deptno
                    LEFT JOIN employees e ON e.empno = dp.empno )
    WHERE ranking = 1;
    DNAME         ENAME             PRIORITY
    Sales         Bennett                  5
    IT            Parkman                  8
    Research      Bennett                  9
    3 rows selectedThe <tt>WITH</tt> clause is just to define test data inline rather than creating tables, in case that's not clear.

  • Error single row subquery returns multiple values

    Hi All,
    I have a below query. This is query is throwiing error like single row subquery is returing more than number of records. That subquery is in my SELECT statement query. I have a value like 'tests'. That test contains more than one record. I am fetching that 'tests' child values from this query. If the test contains only one child at that time it is working fine. Can anyone share with how update this query?
    SELECT
        czpn.FEATURE_TYPE,
        czci.PS_NODE_NAME,
        DECODE(czci.VALUE_TYPE_CODE,2,czci.ITEM_VAL,
                                    3, NVL((SELECT
                                             lines_config.PS_NODE_NAME
                                         FROM
                                             CZ_CONFIG_ITEMS lines_config
                                         WHERE
                                             lines_config.PARENT_CONFIG_ITEM_ID = czci.CONFIG_ITEM_ID
                                             AND lines_config.CONFIG_HDR_ID = czci.CONFIG_HDR_ID
                                             AND lines_config.CONFIG_REV_NBR = czci.CONFIG_REV_NBR),
                                        DECODE(czci.ITEM_NUM_VAL,1,'',czci.ITEM_NUM_VAL)),
                                    0,NVL(czci.ITEM_NUM_VAL,'')) NODE_VALUE  
    FROM
        CZ_CONFIG_ITEMS czci,
        CZ_PS_NODES czpn
    WHERE
        czpn.PERSISTENT_NODE_ID = czci.PS_NODE_ID
        AND czci.CONFIG_HDR_ID = 1827349
        AND czci.CONFIG_REV_NBR = 1
        --AND czci.VALUE_TYPE_CODE <> 4
        AND czpn.FEATURE_TYPE IS NOT NULL
        --AND czci.PS_NODE_ID = 356474       
        AND czpn.DEVL_PROJECT_ID = (SELECT MAX(ps_devl1.DEVL_PROJECT_ID) FROM CZ_DEVL_PROJECTS ps_devl1, CZ_PS_NODES ps_devl, CZ_CONFIG_ITEMS ps_config_sub
                                         WHERE (ps_devl.PERSISTENT_NODE_ID = ps_config_sub.PS_NODE_ID
                                         AND ps_config_sub.PARENT_CONFIG_ITEM_ID = (SELECT ps_config_sub1.CONFIG_ITEM_ID FROM CZ_CONFIG_ITEMS ps_config_sub1
                                                                                     WHERE ps_config_sub.CONFIG_HDR_ID = ps_config_sub1.CONFIG_HDR_ID
                                                                                    AND ps_config_sub.CONFIG_REV_NBR = ps_config_sub1.CONFIG_REV_NBR 
                                                                                     AND ps_config_sub1.PS_NODE_NAME = 'ACCESSORIES'))
                                        AND ps_devl1.DEVL_PROJECT_ID = ps_devl.REFERENCE_ID                                                                                 
                                         AND ps_config_sub.CONFIG_HDR_ID = czci.CONFIG_HDR_ID
                                         AND ps_config_sub.CONFIG_REV_NBR = czci.CONFIG_REV_NBR)
        AND czci.PS_NODE_NAME = 'tests'Thanks

    Hello,
    This should work:
    SELECT
        czpn.FEATURE_TYPE,
        czci.PS_NODE_NAME,
        DECODE(czci.VALUE_TYPE_CODE,2,czci.ITEM_VAL,
                                    3, NVL((SELECT
                                             lines_config.PS_NODE_NAME
                                         FROM
                                             CZ_CONFIG_ITEMS lines_config
                                         WHERE
                                             lines_config.PARENT_CONFIG_ITEM_ID = czci.CONFIG_ITEM_ID
                                             AND lines_config.CONFIG_HDR_ID = czci.CONFIG_HDR_ID
                                             AND lines_config.CONFIG_REV_NBR = czci.CONFIG_REV_NBR
                                             AND ROWNUM <= 1),
                                        DECODE(czci.ITEM_NUM_VAL,1,'',czci.ITEM_NUM_VAL)),
                                    0,NVL(czci.ITEM_NUM_VAL,'')) NODE_VALUE  
    FROM
        CZ_CONFIG_ITEMS czci,
        CZ_PS_NODES czpn
    WHERE
        czpn.PERSISTENT_NODE_ID = czci.PS_NODE_ID
        AND czci.CONFIG_HDR_ID = 1827349
        AND czci.CONFIG_REV_NBR = 1
        --AND czci.VALUE_TYPE_CODE  4
        AND czpn.FEATURE_TYPE IS NOT NULL
        --AND czci.PS_NODE_ID = 356474       
        AND czpn.DEVL_PROJECT_ID = (SELECT MAX(ps_devl1.DEVL_PROJECT_ID) FROM CZ_DEVL_PROJECTS ps_devl1, CZ_PS_NODES ps_devl, CZ_CONFIG_ITEMS ps_config_sub
                                         WHERE (ps_devl.PERSISTENT_NODE_ID = ps_config_sub.PS_NODE_ID
                                         AND ps_config_sub.PARENT_CONFIG_ITEM_ID = (SELECT ps_config_sub1.CONFIG_ITEM_ID FROM CZ_CONFIG_ITEMS ps_config_sub1
                                                                                     WHERE ps_config_sub.CONFIG_HDR_ID = ps_config_sub1.CONFIG_HDR_ID
                                                                                    AND ps_config_sub.CONFIG_REV_NBR = ps_config_sub1.CONFIG_REV_NBR 
                                                                                     AND ps_config_sub1.PS_NODE_NAME = 'ACCESSORIES'))
                                        AND ps_devl1.DEVL_PROJECT_ID = ps_devl.REFERENCE_ID                                                                                 
                                         AND ps_config_sub.CONFIG_HDR_ID = czci.CONFIG_HDR_ID
                                         AND ps_config_sub.CONFIG_REV_NBR = czci.CONFIG_REV_NBR)
        AND czci.PS_NODE_NAME = 'tests'Where this is restricting the records returned by your columnar subquery to one record with ROWNUM.

Maybe you are looking for