Cannot access columns in a result set using table alias in Oracle database

I have a query which joins a few tables. There are a few columns in various tables with identical names. In the query, I have assigned table aliases for each table thinking it'll be the manner in which I access a specific column in a specific database table. However, when trying to retrieve the column, I'm getting an exception stating "Invalid column name". I had no problem doing so in my last project when I was coding against MySQL database so this is likely to be a driver implementation issue. My current workaround is to assign a column alias though I find this to be annoying and it does make the query very verbose.
My question is whether this option is perhaps a configuration issue, a bug, or something that I'm missing. Also, I would like to know if anybody has an elegant workaround without accessing columns using their numeric index.
I'm querying an Oracle 10i database in a managed environment (database connection is obtained from a Weblogic data source).
Sample query:
select
a.address1,
d.address1
from
account a
inner join
department d on a.department_id = d.department_id
where
a.account_id = 1000;
When trying to access a ResultSet instance in the following manner, I will get an exception:
rs.getString("d.address1");
Retrieving "address1" will return the first column in the select clause.

jonathan3 wrote:
My question is whether this option is perhaps a configuration issue, a bug, or something that I'm missing. Since you already figured out that you can use an alias one can suppose that it is the last in that you are missing that you already have a solution.
You can try extracting the meta data to see if it has a name without the alias. Probably not.
Also, I would like to know if anybody has an elegant workaround without accessing columns using their numeric index.One can only suppose that you consider using names "elegant".

Similar Messages

  • How to get the number of columns in a result set???

    hi everyone..
    i am trying to establish a servlet applet communication....
    my applet send the sql query to the servlet as serialised string and then the servlet executes the query...
    Since i need to pass the result back to the applet, i thaught of passing the whole reult set to the applet..but that seems to be not possible..
    so i thaught of storing my result set data in a vector and then pass the vector,but the first problem that i came across is that how to get the number of colums in a result set....
    so is there a way to get the number of columns in a result set...???
    and also i would like to know if it possible to send my whole result set to the applet bye serialization or by any method...???
    thanx in advance

    You shouldn't do. It expenses resources (you should always close the ResultSet and the Statement as fast as possible). Simply gently process it into a Collection or Map of DTO's. Those are serializable.

  • Aperture cannot access this library" followed by "To use this library, make sure its file permissions are set correctly."

    Hi,
    I am completely confused. I use aperture everyday and today when I tried to open it I got the following message " aperture cannot access this library" then it said to use this library , make sure its file permissions are set correctly"
    So i read a bunch of posts and opened aperture while holding down option and command and repaired the file permissions.  it did nothing, when I tried to open aperture I received the same message.   So then i tried opening it while holding down just the option key. This brought up all of my libraries but when I chose the library i use daily the same message came up.
    Does anyone know how to fix this and/ or why it is happening?
    Thank you

    No idea how to check the format, not familiar with Drobo products. Does the drive show up in Disk Utility? If so you should be able to see how it is formatted there.
    How long has this setup been in use?
    Aperture libraries have to be on locally connected drives formatted as OS Extended as per Apple (see Format external drives to Mac OS Extended before using with Aperture for example). While Aperture may work with other setups there is always the possibility that the library will become unusable at any point in time with no warning.
    Try to find out the format of the drive and post back. Maybe something can be done but from the error messages you are getting I'm thinking the best course of action will be to restore from backups onto a correctly formatted drive.
    regards

  • Virtual column in the result set of the query.

    Hi folks,
    I have table , let it be, EMP. It has columns ENAME,EMPNO,JOB etc.,
    My requirement is to add an extra column, not present in the table, having NULL value at the time of diplaying the results of a query. I hope you got it. So a column that does not exists in the table should get displayed in the resultant set when we query the results from that table. so my question is, how to write the SELECT statement using that virtual column.
    I'd thought of using X column in Dummy table but what if I don't have any dummy table in my particular schema.
    Please do revert back with the solution.
    Your effort'll be genuinely appreciated.
    Cheers
    PCZ

    Hi,
    If you just wany display null values you can write query like this :
    SELECT ENAME,EMPNO,JOB , NULL DUMMY_COLUMN FROM emp;
    Regrads
    Avinash

  • How to return two XML result sets using the function

    Hi Experts,
    Thanks.

    So that I want to return two XML result sets if the query returns more than 50,000 records.
    One XML result set with 50,000 and another XML result set with remaining records.
    How to incorporate this in my function.
    Have the function return a collection of CLOB then.
    DBMS_XMLGEN can handle pagination so it's easy to adapt your existing code.
    Here's an example fetching data in batches of max. 3 rows each, using a pipelined function :
    SQL> create or replace type clob_array is table of clob;
      2  /
    Type created
    SQL>
    SQL> create or replace function genXmlRowset (p_deptno in number) return clob_array pipelined
      2  is
      3    ctx    dbms_xmlgen.ctxHandle;
      4    doc    clob;
      5  begin
      6 
      7    ctx := dbms_xmlgen.newContext('SELECT empno, ename FROM scott.emp WHERE deptno = :1');
      8    dbms_xmlgen.setBindValue(ctx, '1', p_deptno);
      9    dbms_xmlgen.setMaxRows(ctx, 3);
    10 
    11    loop
    12 
    13      doc := dbms_xmlgen.getXML(ctx);
    14      exit when dbms_xmlgen.getNumRowsProcessed(ctx) = 0;
    15      pipe row (doc);
    16 
    17    end loop;
    18 
    19    dbms_xmlgen.closeContext(ctx);
    20 
    21    return;
    22 
    23  end;
    24  /
    Function created
    SQL> set long 5000
    SQL> select * from table(genXmlRowset(30));
    COLUMN_VALUE
    <?xml version="1.0"?>
    <ROWSET>
    <ROW>
      <EMPNO>7499</EMPNO>
      <ENAME>ALLEN</ENAME>
    </ROW>
    <ROW>
      <EMPNO>7521</EMPNO>
      <ENAME>WARD</ENAME>
    </ROW>
    <ROW>
      <EMPNO>7654</EMPNO>
      <ENAME>MARTIN</ENAME>
    </ROW>
    </ROWSET>
    <?xml version="1.0"?>
    <ROWSET>
    <ROW>
      <EMPNO>7698</EMPNO>
      <ENAME>BLAKE</ENAME>
    </ROW>
    <ROW>
      <EMPNO>7844</EMPNO>
      <ENAME>TURNER</ENAME>
    </ROW>
    <ROW>
      <EMPNO>7900</EMPNO>
      <ENAME>JAMES</ENAME>
    </ROW>
    </ROWSET>
    SQL>
    (and don't forget to use bind variables in your query)

  • I cannot access emails on ipad after setting up the account. It says there ARE emails.......but nothing opens

    I cannot access my emails on Ipad after setting up account. It tells me there ARE emails......but they won't open. Help please??

    give more info
    does it say you have unread emails?
    does it show mails in the inbox that have have yet to read?
    does it fail if you try to read mails by clicking on them?
    more info more info more info

  • Reading multiple result sets using executeQuery

    Hi - We have a database Proc that returns multiple result sets as the out params.
    Following is the line that does the DB call.
    rows = DynamicSQL.executeQuery(sentence : query, implname : "Sql Server");
    The 'rows' param above is able to get only the first result set after. It ignores the rest of the Out params.
    Do we have any way other than changing the proc to send one out param to handle this?
    Thanks!
    VVP

    This worked:
    rows = myDynamic.executeQuery(sentence : SaveQueryForMAPS, implname : "MAPS");
    foreach (row in rows) {
    //status = 0;
    status = row[1];
    display("status" +status);
    Thank you so much for your idea Andrea!

  • Displaying large result sets in Table View u0096 request for patterns

    When providing a table of results from a large data set from SAP, care needs to be taken in order to not tax the R/3 database or the R/3 and WAS application servers.  Additionally, in terms of performance, results need to be displayed quickly in order to provide sub-second response times to users.
    This post is my thoughts on how to do this based on my findings that the Table UI element cannot send an event to retrieve more data when paging down through data in the table (hopefully a future feature of the Table UI Element).
    Approach:
    For data retrieval, we need to have an RFC with search parameters that retrieves a maximum number of records (say 200) and a flag whether 200 results were returned. 
    In terms of display, we use a table UI Element, and bind the result set to the table.
    For sorting, when they sort by a column, if we have less than the maximum search results, we sort the result set we already have (no need to go to SAP), but otherwise the RFC also needs to have sort information as parameters so that sorting can take place during the database retrieval.  We sort it during the SQL select so that we stop as soon as we hit 200 records.
    For filtering, again, if less than 200 results, we just filter the results internally, otherwise, we need to go to SAP, and the RFC needs to have this parameterized also.
    If the requirement is that the user must look at more than 200 results, we need to have a button on the screen to fetch the next 200 results.  This implies that the RFC will also need to have a start point to return results from.  Similarly, a previous 200 results button would need to be enabled once they move beyond the initial result set.
    Limitations of this are:
    1.     We need to use custom RFC function as BAPI’s don’t generally provide this type of sorting and limiting of data.
    2.     Functions need to directly access tables in order to do sorting at the database level (to reduce memory consumption).
    3.     It’s not a great interface to add buttons to “Get next/previous set of 200”.
    4.     Obviously, based on where you are getting the data from, it may be better to load the data completely into an internal table in SAP, and do sorting and filtering on this, rather than use the database to do it.
    Does anyone have a proven pattern for doing this or any improvements to the above design?  I’m sure SAP-CRM must have to do this, or did they just go with a BSP view when searching for customers?
    Note – I noticed there is a pattern for search results in some documentation, but it does not exist in the sneak preview edition of developer studio.  Has anyone had in exposure to this?
    Update - I'm currently investigating whether we can create a new value node and use a supply function to fill the data.  It may be that when we bind this to the table UI element, that it will call this incrementally as it requires more data and hence could be a better solution.

    Hi Matt,
    i'm afraid, the supplyFunction will not help you to get out of this, because it's only called, if the node is invalid or gets invalidated again. The number of elements a node contains defines the number of elements the table uses for the determination of the overall number of table rows. Something quite similar to what you want does already exist in the WD runtime for internal usage. As you've surely noticed, only "visibleRowCount" elements are initially transferred to the client. If you scroll down one or multiple lines, the following rows are internally transferred on demand. But this doesn't help you really, since:
    1. You don't get this event at all and
    2. Even if you would get the event, since the number of node elements determines the table's overall rows number, the event would never request to load elements with an index greater than number of node elements - 1.
    You can mimic the desired behaviour by hiding the table footer and creating your own buttons for pagination and scrolling.
    Assume you have 10 displayed rows and 200 overall rows, What you need to be able to implement the desired behaviour is:
    1. A context attribute "maxNumberOfExpectedRows" type int, which you would set to 200.
    2. A context attribute "visibleRowCount" type int, which you would set to 10 and bind to table's visibleRowCount property.
    3. A context attribute "firstVisibleRow" type int, which you would set to 0 and bind to table's firstVisibleRow property.
    4. The actions PageUp, PageDown, RowUp, RowDown, FirstRow and LastRow, which are used for scrolling and the corresponding buttons.
    The action handlers do the following:
    PageUp: firstVisibleRow -= visibleRowCount (must be >=0 of course)
    PageDown: firstVisibleRow += visibleRowCount (first + visible must be < maxNumberOfExpectedRows)
    RowDown/Up: firstVisibleRow++/-- with the same restrictions as in page "mode"
    FirstRow/LastRow is easy, isn't it?
    Since you know, which sections of elements has already been "loaded" into the dataSource-node, you can fill the necessary sections on demand, when the corresponding action is triggered.
    For example, if you initially display elements 0..9 and goto last row, you load from maxNumberOfExpected (200) - visibleRows (10) entries, so you would request entries 190 to 199 from the backend.
    A drawback is, that the BAPIs/RFCs still have to be capable to process such "section selecting".
    Best regards,
    Stefan
    PS: And this is meant as a workaround and does not really replace your pattern request.

  • ABAP routine - looping a result set from table.

    I am trying to access a table and pass the resulting rows to an internal table.
    However, before passing, I need to do some data manipulation on one of the columns of the table and then pass it.
    If I didn't have to do this, I could have just said
    INTO CORRESPONDING FIELDS OF TABLE
    But since I have do data manipulation, I cannot do this. This is what I am doing now.
    SELECT * FROM /BI0/QEMPLOYEE WHERE JOB = '1234' AND DATETO = '99991231'.
    MOVE /BI0/QEMPLOYEE-EMPLOYEE TO INT_EMP-EMPN.
    MOVE /BI0/QEMPLOYEE-JOB TO STR1.
    STR2 = STR1 + 0(4)
    SEARCH STR2 FOR ' ' STARTING AT 1 ENDING AT 1.
    IF SY-SUBRC EQ 0.
    REPLACE ' ' WITH '0' INTO STR2.
    ENDIF.
    MOVE STR2 TO INT_EMP-FAC.
    But this will move only one row. How can I move all the rows? Is there a loop that I can use? I can see a loop for internal tables but I need to loop the result set and then send it. I posted this question twice but haven't gotten the right answer.
    Thanks.

    Hi,
    Are you trying to write the code in Update Routine or a Start Routine.?
    If you want to update all the records, you can use the start routine.
    So you need to use a loop for doing all the records.
    If you are using a Update routine then you dont have to use the loop.
    But here I recommend the Start Routine is the best choice.
    Here is a document which can be helpful for you:
    http://bluestonestep.com/component/option,com_docman/task,doc_download/gid,13/
    Happy Tony

  • Problem in finding Exact result by using the following in Oracle Reports 6i

    Hello,
    I am finding difficulty in producing the required result by using the following query in Reports 6i
    (Note: - The query actual output and the my required output are as follows: -)
    SELECT
    DISTINCT
    SH.S_HEAD_CODE,
    B.BILL_ID,
    B.SANCTION_DATE,
    E.EMP_NAME,
    E.EMP_DESIGNATION,
    B.TOTAL_BILL,
    NVL((SH.INITIAL_ALLOCATION-B.TOTAL_BILL), 0) BALANCE
    FROM BILL B, PARAMETERS P,SUB_HEAD SH, EMPLOYEES E, BILL_DETAIL BD
    WHERE
    SH.S_HEAD_CODE=B.S_HEAD_CODE
    AND B.S_HEAD_CODE=BD.S_HEAD_CODE
    AND B.EMP_ID_NO=E.EMP_ID_NO
    AND B.BILL_ID=BD.BILL_ID
    The Output of the above query is as follows: -
    Let say we have Total Amount Sanctioned Rs. 15,000,00/-
    Name Total Bill (Rs.) Balance (Rs.)
    Sohail 7147 1492853
    Saqib 2131 1497869
    Amir 6802 1493198
    Shafiq 1214 1498786
    Note:- In the above output the above query is subtracting the current balance from Total Sanctioned Amount (Rs. 1500000) each time, but
    it should actually subtract the current bill amount from the previous balance like the below said result.
    Name Total Bill (Rs.) Balance (Rs.)
    Sohail 7147 1492853 {Previous Balance - Current Bill Amount (1500000-7147) }........ The previous balance was actual amount Rs. 1500000
    Saqib 2131 1490722 {Previous Balance - Current Bill Amount (1492853 - 2131)}
    Amir 6802 1483920 {Previous Balance - Current Bill Amount (1490722 - 6802)}
    Shafiq 1214 1482706 {Previous Balance - Current Bill Amount (1483920 - 1214)}
    Results Continue...........................
    Please help me to solve this problem.
    Thank you in advance

    Its more like the case of a running total ...
    You could analytical functions to achieve it or make the BILL a subquery of the BALANCE.
    Try posting your query in the "SQL and PL/SQL" forum, veteran members there, can provide better answers.

  • Can we call and execute a request set using db adapter or oracle apps adapt

    Hi,
    Can we call and execute a request set(which executes a set of packages in a sequence) using db adapter or oracle apps adapter similar to calling a stored procedure and concurrent program?
    thanks,
    RV

    1) In BPEL call the DBAdapter in a sequence, make sure you set the partnerlink 'property' to transaction=participate.
    2) Or create a package that calls the other packages in a sequence
    Marc
    http://orasoa.blogspot.com

  • DataParser from a set of .cvs files to oracle database

    Hello all,
    This is my first post here, so I am not sure whether this is the right section of the forum, but anyway..
    I need to do a parser that reads cvs files from a set of directories, create a dataset and then a database. I did this as I exported the database to Microsoft Access File. Now, my question is whether it is possible to export it to oracle database file.
    I am using C# for the source code. The parser will be run almost every day.
    Any help would be appreciated. I have a deadline for the project soon :)

    Thanks for the reply.
    The situation is the following. I am done with the parsing. I just have two separate classes - MdbExporter and XmlExporter that export the dataset that has been created to a .mdb file or xml one. Here is an example of the MdbExporter class:
    class MdbExporter : IExporter
    /// <summary>
    /// Exportiert das DataSet in eine Mdb-Datei.
    /// </summary>
    /// <param name="ds">Zu exportierendes DataSet.</param>
    public void Write(DataSet ds, string[] names)
    string conStr = "Provider=Microsoft.Jet.OLEDB.4.0;" +
    "Data Source=" + names[0] + ";";
    Console.WriteLine("Exporting to database {0} ...", names[0]);
    Now I need a way to export the dataset to an oracle database file.
    Thanks for any replay in advance.

  • How to load data using sql to an Oracle database in 9i

    <p>I just started using Hyperion Analytic Admin Services and waswondering if there is a way to load data through a sql call ratherthan a flat file.  Any help is greatly appreciated.</p>

    You need to create a Rules Files: <BR>- right click at Rules Files under Database name / Create Rules File<BR>- File / Open SQL Data Source -> you need to copy and paste your SQL code<BR>- Field / Properties / Data Load Properties -> define each collumn of the result set with an especific dimension.<BR><BR>I hope that it helps you !<BR><BR>Regards<BR><BR>Andrea Crespo<BR>

  • Is there any incompatibility in using different JDBC and Oracle database versions?

    Hi everybody,
    I hope you can answer me ASAP.
    Which version of JDBC driver for Oracle could I use to access an Oracle database version 8.0.4.3.0 running on a SUN machine?
    Is it necessary to use the specific driver concerning to that version or could we use the JDBC version 8.1.6?
    If we decide to use JDBC 8.1.6 to work against the 8.0.4.3.0 database, will we find any incompatibility or problem?
    Thanks.
    null

    I don't know the answer to your question, but while looking for something else, I found a table listing "requirements and compatibilities for oracle jdbc drivers" that might answer your question:
    http://technet.oracle.com/docs/products/oracle8i/doc_library/817_doc/java.817/a83724/getsta1.htm#1008206
    (My aologies if that URL gets broken apart by this posting software and you have to piece it together.)
    Hope this helps.

  • How to change field size using SQL against an oracle Database

    I am an admitted novice user, looking to become more proficient.
    I have a field in a table that I need to expand the field size. The table is called Inquiries. The data type is text. The current Field Size is 10. I want to increase it, to either the max, or somethign long enough to fit TECHNOLOGY LEADERSHIP PROGRAM.
    What is the SQL command to change the field size, and what is the max for a Text Field Size

    And/Or, an even better question might be,
    Do I need to use SQL*PLUS to do this, or are there better tools. I.e, I like how in Access, you can open up a database in Design view and just change the amount for the field size. Is there a similar "easy" method to do something like that with an Oracle database.
    My current version of the server/database is:
    Connected to:
    Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
    With the Partitioning option
    JServer Release 9.2.0.6.0 - Production
    I was thinking I had to do SQL commands to perform the action, but there may be another way that I am not thinking about with all of the tools at my disposal. When I installed Oracle on my desktop, I installed most of the management tools and networking services, if that helps

Maybe you are looking for

  • Custom Screen for Z program in HRABAP

    Hi Techies, I want to develop report in HR ABAP which has my own selectins screen fields Company Code and Cost Center and Activity, coz i dont want default selection screen provided by the pnp logical database. How do i go for that screen. Regards. R

  • Adobe CS6 Design Download Problem

    I have purchased Adobe CS6 Design and Web Premium for Windows.  I was able to download some but not all of the programs.  I receive an Adobe window message to indicate thatPhotoshop, InDesign and Flash Professional could not successful be downloaded.

  • Maintaing state with ejb web services

    Hello, I understand there are no straight way to maintain state with ejb web services. Basically I have a stateful session bean and I would like to maintain state across requests. What is the best/cleanest architecture I can use in order to maintain

  • HT4859 how do you see the items that are backed up to iCloud -  I have 4.5 GB that I have used but I cant find where to see those items...help

    how do you see the items that are backed up to iCloud -  I have 4.5 GB that I have used but I cant find where to see those items...help

  • Windows 7 and Iphone

    I used to be able to browse my picture folder on my iPhone by way of "My Computer" in Vista x64. Since I upgraded to Win7 x64 device manager does not show "Apple iPhone" and computer does not show "iPhone 2G". Odd part is that it does show in iTunes.