Viewing multiple rows in a database.
Hey,
I've been stuck on a problem for a while now. I know that JDBC 1.0 does not allow scrollable resultsets or provide a rowcount method. I know because of this two resultsets are needed,one to get the number of rows and the other to get the values from the rows. Both return the same result set. However when doing this I keep catching an SQL Exception and I dont know why.
The code is in a method in a session EJB but should it not work the same? I shall copy my code in and maybe someone could point out my mistake!
public String[] viewAuctions(TestAuctionVO auctionVO)
// The url for the database
String url = "jdbc:odbc:ProjectDS";
String dbDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
Connection con = null;
Statement stmt = null;
Statement stmt2 = null;
ResultSet rs = null;
ResultSet rs2 = null;
Integer ID = auctionVO.getID();
Integer sellerID = auctionVO.getSellerID();
// Load the driver...
try
con = DriverManager.getConnection(url,"",""); // Create a connection
stmt = con.createStatement();
stmt2 = con.createStatement();
// Build up the SQL statement
String mySQLstmt = ("SELECT * FROM AUCTION WHERE proposedEndDate > GetDate()");
System.out.println("Statement is "+mySQLstmt);
rs = stmt.executeQuery(mySQLstmt);
rs2 = stmt2.executeQuery(mySQLstmt);
System.out.println("Result Set 1 is "+rs);
System.out.println("Result Set 2 is "+rs2);
int numRows = 0;
// While there is another row in the resultset...
while(rs2.next())
// ...another element will be needed in the String array
numRows++;
System.out.println("Number Rows: "+numRows);
// Only perform this section if there is at least one row in theResultSet
if (numRows > 0)
// Set up an array of strings to hold the rows
String[] auctions = new String[numRows];
System.out.println("Number Rows: "+auctions);
// Counter to access the array elements
int i = 0;
System.out.println("i : "+i);
// While there is another row
while(rs.next())
System.out.println("There is another record...");
ID = new Integer(rs.getInt(1));
ID.toString();
System.out.println("\nID = " + ID);
sellerID = new Integer(rs.getInt(2));
sellerID.toString();
System.out.println("Seller ID = "+sellerID);
//...and so on
// Build up the string to store in the array
String userdetails = ID + "," + sellerID + "," ...............
// Put the string in the string array
auctions[i] = userdetails;
// Increment the counter so this element is not overwritten
i++;
// Let User know how many rows were returned
System.out.println("\n Array has : "+auctions.length+" Elements\n");
// For each element in the array
for(int j=0 ; j< numRows; j++)
// If the element is not empty
if(!(auctions[j].equals(null)))
int ElemNum = j+1;
System.out.println(" ViewAuctionEJB viewAuctions method exited");
System.out.println(" Successfull");
System.out.println("Auction Array: "+auctions);
return auctions;
else // If there were no elements in the result set
System.out.println(" ViewAuctionEJB viewAuctions method exited");
System.out.println(" Unsuccessfull: No elements in ResultSet");
stmt.close();
stmt2.close();
con.close();
catch (SQLException sQLE) // There may have been an error in the execution of
{ // the SQL code
System.out.println(" ViewAuctionEJB viewAuctions method exited");
System.out.println(" Unsuccessfull: Error in SQL code");
String[] fail = new String[1] ;
return fail;
String[] success = new String[1] ;
return success;
}Any help is appreciated!
Thanks
Not all databases and JDBC drivers support multiple open cursors per connection.
Instead of trying to count rows, define an Auction object. Read Auction objects from the database, and put them in a vector. Return the vector of Auctions (or convert it to an array of Auctions.) If you need a String[] representation, write a function that converts Auction[] to String[] -- nicer separation of duties at least.
That'll be more reliable, too, as the number of rows can't change between the two cursor loops.
Similar Messages
-
Hi all,
I am sending one single row from one data base to anotherdata base successfully. But I am not able to send multiple rows to another database.I am using parent and child relationship here.
Could anybody help me to solve this problem?
Thanks ,
Gopi.Hi michal & sunitha,
thanks for ur replies.
Yes in sample mapping it is accepted mulyiple rows.But while executing the scenatio it is saying that run time mapping exception.
This is my source structure :
<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="resultset">
<xs:complexType>
<xs:sequence>
<xs:element name="row" minOccurs="0" maxOccurs="unbounded"
>
<xs:complexType>
<xs:sequence>
<xs:element name="Id" type="xs:unsignedShort"/>
<xs:element name="Name" type="xs:string"/>
<xs:element name="Account_Id" type="xs:unsignedShort"/>
<xs:element name="Actual_Ship_Date" type="xs:string"/>
<xs:element name="Contact_id" type="xs:unsignedShort"/>
<xs:element name="Due_Date" type="xs:string"/>
<xs:element name="End_Date" type="xs:string"/>
<xs:element name="Item_Product_Id" type="xs:unsignedByte"/>
<xs:element name="Quote_Number" type="xs:unsignedByte"/>
<xs:element name="RequestedShipDate" type="xs:string"/>
<xs:element name="Revision" type="xs:string"/>
<xs:element name="SalesRep" type="xs:string"/>
<xs:element name="Service_Line_Total" type="xs:unsignedByte"/>
<xs:element name="Service_Total" type="xs:unsignedByte"/>
<xs:element name="Bill_to_Contact_Id" type="xs:unsignedByte"/>
<xs:element name="Bill_to_Address_Id" type="xs:unsignedByte"/>
<xs:element name="Ship_To_Contact_Id" type="xs:unsignedByte"/>
<xs:element name="Ship_To_Address_Id" type="xs:unsignedByte"/>
<xs:element name="Start_Date" type="xs:string"/>
<xs:element name="Status" type="xs:string"/>
<xs:element name="Status_Order" type="xs:string"/>
<xs:element name="Status_Type" type="xs:string"/>
<xs:element name="Comment" type="xs:string"/>
<xs:element name="Line_Number" type="xs:unsignedByte"/>
<xs:element name="Part_Number" type="xs:unsignedByte"/>
<xs:element name="Product_Id" type="xs:unsignedByte"/>
<xs:element name="Quantity" type="xs:unsignedByte"/>
<xs:element name="Quantity_Requested" type="xs:string"/>
<xs:element name="Unit_of_Measure" type="xs:string"/>
<xs:element name="SalesDocumentNumber" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Thanks & Regards ,
Gopi. -
FWD: Re: Retrieving multiple rows from a database into morethan
There are two ways to do this that I cn think of right off the bat.
One is to create a class of objects that can receive the entire row, and
give it methods that will return each of the individual objects that you are
looking for when called. If you use INTO :ARRAY, you get the advantage of
being able to pass the array anywhere in your system for the 'split up'
processing.
Two is to do basically the same thing, but instead doing the 'split up'
during a for loop. This will appear to slow down your query, however, as
extra processing will be occuring in terms of memory allocation and copying.
I'm sure there other approaches. This was simply what came to mind at
midnight, after a long day :-).
At 01:33 AM 6/4/96 +0000, you wrote:
Does anyone know of a way to retrieve multiple rows from a single table in an
RDB database into more than 1 object, using a single SQL call?
I have a single table that I wish to use some fields to populate one object
and some others to populate another.
The FOR clause only allows one object to be specified.
The INTO :ARRAY clause also seems to only allow one object to be specified.
I would appreciate any help.
Regads,
Steve Isaac
Hydro Electric Commission
Hobart TAS 7001
Australia
[email protected]
James Urquhart Voice: (510)869-3400
[email protected] Fax: (612)921-8243
Forte Consultingwow, that was pleasant, the usual format goes:
Newb: I have a problem, fix it for me
Forum: Here's a link explaning the concept you obviously don't grasp
Newb: No, fix it FOR me
Forum: I'll fix you!
Newb: WAAAAH!
Forum: BAN! -
How to insert multiple rows in the database table with the high performance
Hello everybody,
I am using the struts,jsp and spring framework. In my application there are 100s of rows i have to insert into the database 1 by 1. I am using usertransaction all other things are working right but i am not getting the real time performance.
Can anyone tell me the proper method to insert multiple records and also with fast speedI don't know much about Spring etc, but if the jdbc Statemenet.addBatch(), Statement.executeBatch() statements let you bundle a whole lot of sql commands into one lump to execute.
Might help a bit... -
Insert Multiple Rows into a Database
Hi,
I've been working on a project that takes an xml document from JMS queue and inserts the data into db. But the problem here is that there can be any number of data sets. I've been using OEPE for my task, but no matter what I do, the data simply isn't inserted. Could any body please help me? Here is a sample message that I'm trying to insert, as well as the XSDs for the JCA and the input documents.
XSD for JMS Message:
<?xml version="1.0" encoding="windows-1252" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.example.org"
targetNamespace="http://www.example.org"
elementFormDefault="qualified">
<xsd:element name="cannonical">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="orders">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="data" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="rowCode" type="xsd:string"/>
<xsd:element name="productNumber" type="xsd:string"/>
<xsd:element name="attributeType" type="xsd:string"/>
<xsd:element name="attributeCode" type="xsd:string"/>
<xsd:element name="transactionType" type="xsd:string"/>
<xsd:element name="timestamp" type="xsd:dateTime"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
JCA XSD:
<?xml version = '1.0' encoding = 'UTF-8'?>
<xs:schema targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/db/top/InsertData" xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/top/InsertData" elementFormDefault="qualified" attributeFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="OrderDataCollection" type="OrderDataCollection"/>
<xs:complexType name="OrderDataCollection">
<xs:sequence>
<xs:element name="OrderData" type="OrderData" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="OrderData">
<xs:sequence>
<xs:element name="prodnum" type="xs:decimal"/>
<xs:element name="attrtype" minOccurs="0" nillable="true">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="attrcode" minOccurs="0" nillable="true">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="10"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="transtype" minOccurs="0" nillable="true">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ordertime" type="xs:dateTime" minOccurs="0" nillable="true"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
Sample Input:
<?xml version="1.0" encoding="windows-1252"?>
<ProductData>
<header>
<rowCode>H</rowCode>
<interfaceCode>H6D9J7</interfaceCode>
<createdOn>
<date>
<year>2011</year>
<month>05</month>
<day>23</day>
</date>
<time>
<hour>02</hour>
<minute>05</minute>
<seconds>11</seconds>
</time>
</createdOn>
<description>Front Shop Item Attributes from FMS to JDA PMM</description>
</header>
<body>
<data>
<rowCode>D</rowCode>
<productNumber>0004567</productNumber>
<attributeType>TTTTTT</attributeType>
<attributeCode>CCCCCCCjjj</attributeCode>
<transactionType>A</transactionType>
<timestamp>
<date>
<year>2011</year>
<month>02</month>
<day>19</day>
</date>
<time>
<hour>02</hour>
<minute>05</minute>
<seconds>11</seconds>
</time>
</timestamp>
</data>
<data>
<rowCode>D</rowCode>
<productNumber>0004567</productNumber>
<attributeType>TTTTTT2</attributeType>
<attributeCode>CCCCCCjjj2</attributeCode>
<transactionType>A</transactionType>
<timestamp>
<date>
<year>2011</year>
<month>02</month>
<day>19</day>
</date>
<time>
<hour>02</hour>
<minute>05</minute>
<seconds>11</seconds>
</time>
</timestamp>
</data>
</body>
<footer>
<rowCode>Z</rowCode>
<interfaceCode>H6D9J7</interfaceCode>
<numberOfRows>000000000002</numberOfRows>
</footer>
</ProductData>
I'll be really grateful if anybody can help me out. Thank you.Check below link it may help you out
how to Insert multiple records using single DB Adapter
Thanks
AJ -
Inserting Multiple Rows into Database Table using JDBC Adapter - Efficiency
I need to insert multiple rows into a database table using the JDBC adapter (receiver).
I understand the traditional way of repeating the statement multiple times, each having its <access> element. However, I am just wondering whether this might be performance-inefficient, as it might insert records one by one.
Is there a way to ensure that the records are inserted into the table as a block, rather than record-by-record?Hi Bhavesh/Kanwaljit,
If we have multiple ACCESS tags then what happens is that the connection to the database is made only once. But the data is inserted row by row.
Why i am saying this?
If we add the following in JDBC Adapter..logSQLStatement = true. Then incase of multiple inserts we can see that there are multiple
<i>Insert into tablename(EMP_NAME,EMP_ID) VALUES('J','1000')
Insert into tablename(EMP_NAME,EMP_ID) VALUES('J','2000')</i>
Doesnt this mean that rows are inserted one by one?
Correct me if i am wrong.
This does not mean that the transaction is not guaranted. Either all the rows will be inserted or rolled back.
Regards,
Sumit -
(261936172) Q DBC Multiple rows from Database Control method?
Q<DBC> Can you give an example of returning multiple rows from a database?
A<DBC> A Database Control method can return multiple rows.
Assuming the SQL for the method can return multiple rows from
the database, what does the method return? It may return an
Array of Objects*, an Iterator (on a Collection of Objects*)
or a java.sql.ResultSet.
Attached is code that gives an example of returning multiple
rows (not the entire files, but text from them).
* the Objects are either user defined or a HashMap
[rows.txt]hi Keshav,
Earlier i was using same variable SEL in internal table and as a selection column as well. In that case, it was marking SEL as 'X' even when document was selected.
Today, i tried making selection column name as 'MARK' and internal table field name as 'SEL', it is working fine. I am able to read table control lines where MARK equals 'X'.
[http://www.sapdev.co.uk/dialog/tabcontrol/tc_mark.htm]
I followed this link provided by you. Its really useful. Thanks for your help.
Thanks to others as well.
Thanks,
Archana -
Custom database functoid to return multiple rows from database
Hi,
I have created a custom database fucntoid to execute a stored procedure which returns just single row from the database.But I could not manage to return multiple rows from the database.
Does anyone know how to return multiple rows from DB and create a node with that many occurrences in the target schema?
Thanks
JBIf you want to do this in messaging-only way without orchestration, then only option let to you is using .NET in BizTalk:
We had similar requirement with one of our clients, where they didn’t want to use orchestration (though we emphasised on less impact orch would have compared to manageability),
they still wanted to have pure-messaging only.
We extended the custom XslTransform component that ships with BizTalk SDK (<BizTalk installation directory>\SDK\Samples\Pipelines\XslTransformComponent)).
Created a custom disassembler pipeline component, used the XslTransform component from SDK to execute the map’s XSLT. Here we created a map with every links except the database ones. After executing the map, access the database, execute the store procedure
which returns more than one row/dataset, enrich the XSLT transformed message with the dataset from your database in disassembler.
Since .NET gives you the flexibility of access the dataset with more than one row, you can enrich the message in custom pipeline code.
Other option is code the message transformation completely in .NET code in custom disassembler by passing the received message to method/code which would code the map/enrichment.
While enriching you can execute the store procedure which returns more than one row/dataset, enrich the message further with the dataset from db.
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. -
How to retreive multiple rows on a tabbed page
Dear Gurus,
I am new to Forms Programming. I have 4 tab pages on the canvas. On one of the tab page I am trying to retrieve multiple rows from the database. I want that the data should be automatically displayed as user changes to that tab page.
The problem which I think is that the cursor is not moving from the first tab page to the new tab page. When I am trying to use go_item, it is not allowing me to change the tab page as all the items on this tab page is display item. Even go_block is not working. I am writing both the functions on When_Tab_Page_Changed trigger.
Please Help!!!!!!!!Hi
Try this one. Check the logic. I didn't have much time to program. With this draft you can begin to do what you need.
Bye, Aron
create or replace package testpkg is
type TYPE_TESTNAMES IS TABLE OF testnames%rowtype index by binary_integer;
procedure getByStatus(countToReturn in NUMBER,status in NUMBER,newStatus in NUMBER, records in out TYPE_TESTNAMES);
end testpkg;
create or replace package body testpkg IS
procedure getByStatus(countToReturn in NUMBER,status in NUMBER,newStatus in NUMBER, records in out TYPE_TESTNAMES)
is
selectedIds MESSAGE_ID_TABLE;
cursor select_messages_by_status (currentStatus NUMBER) is
select id
from testnames
where status= currentStatus
for update;
cursor t (currentStatus NUMBER) is
select *
from testnames
where status= currentStatus
for update;
r testnames%rowtype;
i int := 0;
begin
open select_messages_by_status(status);
fetch select_messages_by_status bulk collect into selectedIds limit countToReturn;
for selectedId in selectedIds.first..selectedIds.last loop
update testnames set status = newStatus where id = selectedId;
end loop;
open t(status);
loop
fetch t into r;
exit when t%notfound;
records(i) := r;
i := i + 1;
end loop;
end getByStatus;
end testpkg;
-- Test program
declare
r testpkg.TYPE_TESTNAMES;
begin
testpkg.getByStatus(2, 0, 3, r);
dbms_output.put_line(r(1).id);
end; -
Hi
I have a JSP page which displays multiple rows from the database. In those two fields are editable and I have a button to save in each row. Since I am running a loop and setting the value in the text field, the name of the text field is same for all the rows. But when I update a row, it always takes the values from the first row. I am using struts ActionForm to get and set the values from JSP. Somewhere i need to say this button corresponds to this row. Can somebody help me on thisSomewhere i need to say
this button corresponds to this row. Can somebody
help me on thismy guess would be to make a counter and increment it as you loop through, and the id for each record could include that number appended to the name/id, do you think that will work for you? -
How to get multiple rows from database table?
hello !
I need to get multiple rows from a OLEDB database table and display them on a table object.
I did "Wrap in subfrom" on the table, set subform of the table to "flowed", and checked "Repeat row for each data item" of Row1 of the table.
But I can get only one row on the table object.
I need your help.
ThanksHi,
best practices when deleting multiple rows is to do this on the business service, not the view layer for performance reasons. When you selected the rows to delete and press submit, then in a managed bean you access thetable instance (put a reference to a managed bean from the table "binding" property") and call getSeletedRowKeys. In JDeveloper 11g, ADF Faces returns the RowKeySet as a Set of List, where each list conatins the server side row key (e.g. oracle.jbo.Key) if you use ADF BC. Then you create a List (ArrayList) with this keys in it and call a method exposed on the business service (through a method activity in ADF) and pass the list as an argument. On the server side you then access the View Object that holds the data and find the row to delte by the keys in the list
Example 134 here: http://blogs.oracle.com/smuenchadf/examples/#134 provides you with the code
Frank -
Multiple Rows Update / Refresh Toplink Query when database trigger involved
Hi everybody!
I have two easy troubles for you; the platform is the same as the SRDemo Toplink version.
1. Multiple Rows Update: I want to update with mergeEntity method, multiple rows for an isolated table; that method receives a parameter that I try to bind with the iterator "dataProvider" but it only merges the first row, not all, any other combination returns an error.
What I want to do is to have a form (like tabular forms in Apex) that lets me update multiple rows in a single page. ¿May anyone tell me how to do it?
2. Refresh Toplink Named Query: I have a list on a page with two columns. From another page, a button does an action that fires a database trigger that updates one of the columns on the list´s page. When I go back to the list, it is not updated; however, the CacheResults´s property is set to false on the iterator.
Thanks in advance,
Alejandro TI didn't use it (yet), but - you might take a look. You'll find a [url http://www.oracle.com/technetwork/developer-tools/apex/application-express/apex-plug-ins-182042.html]Timer plug-in on this page. It is a dynamic action which allows you to periodically fire other dynamic actions in the browser. For example use the timer to refresh a region every five minutes. You can perform any dynamic action you want using this infrastructure.So I was thinking: you might use it to run a dynamic action which would check whether something changed in that table (I suppose you'll know the way) (for example, a database trigger might set a flag in some table, timestamp or similar), and - if you find that something really changed - refresh the page.
As I said, I never used it so that's pure theory. Someone else might know better, though. -
URGENT: Insert multiple rows in a view object cache from the same Page
Please let me know whether I can get insert multiple rows in the same view object from a single page.
I'm using UIX on Jdeveloper 9.0.5.2
Thanks a lot.Hi,
please check Duncan Mills how-to on this
http://www.oracle.com/technology/products/jdev/tips/mills/JSP_Multi_Row_Edits.html
Frank -
Getting error while deleting rows from the database using the View Object
Hi All,
I am using jdev 11.1.1.4.0. I am removing the rows from the database using viewobject( quering the viewobject to find the records i want to delete).
I am using vo.removeCurrentRow(0). Before this statement I am able to get the rows I want to delete.
after that i am doing am.transaction.commit(). But I am getting the error..
javax.faces.el.EvaluationException: oracle.jbo.DMLException: JBO-26080: Error while selecting entity for CriteriaEO
at org.apache.myfaces.trinidadinternal.taglib.util.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:58)
at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodBinding(UIXComponentBase.java:1256)
at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:183)
at oracle.adf.view.rich.component.fragment.UIXRegion.broadcast(UIXRegion.java:148)
at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)
at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)
at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:102)
at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)
at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)
at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:96)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:879)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:312)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:185)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:175)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
Caused by: oracle.jbo.DMLException: JBO-26080: Error while selecting entity for CriteriaEO
at oracle.jbo.server.OracleSQLBuilderImpl.doEntitySelectForAltKey(OracleSQLBuilderImpl.java:1117)
at oracle.jbo.server.BaseSQLBuilderImpl.doEntitySelect(BaseSQLBuilderImpl.java:553)
at oracle.jbo.server.EntityImpl.doSelect(EntityImpl.java:8134)
at oracle.jbo.server.EntityImpl.lock(EntityImpl.java:5863)
at oracle.jbo.server.EntityImpl.beforePost(EntityImpl.java:6369)
at oracle.jbo.server.EntityImpl.postChanges(EntityImpl.java:6551)
at oracle.jbo.server.DBTransactionImpl.doPostTransactionListeners(DBTransactionImpl.java:3275)
at oracle.jbo.server.DBTransactionImpl.postChanges(DBTransactionImpl.java:3078)
at oracle.jbo.server.DBTransactionImpl.commitInternal(DBTransactionImpl.java:2088)
at oracle.jbo.server.DBTransactionImpl.commit(DBTransactionImpl.java:2369)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.el.parser.AstValue.invoke(Unknown Source)
at com.sun.el.MethodExpressionImpl.invoke(Unknown Source)
at org.apache.myfaces.trinidadinternal.taglib.util.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:53)
... 53 more
Caused by: java.sql.SQLSyntaxErrorException: ORA-00972: identifier is too long
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:457)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:405)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:889)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:476)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:204)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:540)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:217)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:924)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1261)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1419)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3752)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3806)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1667)
at oracle.jbo.server.OracleSQLBuilderImpl.doEntitySelectForAltKey(OracleSQLBuilderImpl.java:869)
Please give suggestions...
Thanks
KanikaHi,
First Run Application module and confirm whether model project is OK,Cause for the Error is Caused by: java.sql.SQLSyntaxErrorException: ORA-00972: identifier is too long
check:
Issues with table/column name length
identifier is too long
I guess following error occurred because above issue
JBO-26080: DMLException
Cause: An unexpected exception occurred while executing the SQL to fetch data for an entity instance or lock it.
Action: Fix the cause for the SQLException in the details of this exception.
See:
http://download.oracle.com/docs/cd/A97337_01/ias102_otn/buslog.102/bc4j/jboerrormessages.html#26080Hope you will helpful -
RFC XI JDBC to external database.... Get data in multiple rows
Hi,
We have been really struggling with this scenario. We have created a RFC that has 1 Import parameter (Order_ID) and table parameter (3 Columns: Order_ID, Partner_type, Partner_no).
When we call this RFC in SAP, it should make a connection to external database via JDBC and get multiple row data for every Order_ID. We are not using Oracle Stored Procedure, instead we are using simple Select statement. Did all the mapping and configured correctly. However, we are getting short-dump when we execute RFC. When we checked in XI, it says " Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd at "
Has anyone tried getting multiple row information from external database(Oracle) using Select statement in XI ? IF so, can you pl let us know if we need to something different in Mapping ?
NiranjanNiranjan,
Check this blog of mine to see how the datatype for Synchronous Select should be constructed,
https://weblogs.sdn.sap.com/pub/wlg/3928. [original link is broken] [original link is broken] [original link is broken] [original link is broken]
If this looks good, a few checks
1. Check the request inbound payload , i.e the RFC request in MONI. Is this as expected?
2. Check the output of the request mapping and check if this is as expected.
3. Check the response from JDBC, is this as per the datatype defined.
4. Check the mapping from JDBC response to RFC response.
To me this looks like an issue with the JDBC response structure.
Meanwhile to understand how to test mapping, check blog of michal,
/people/michal.krawczyk2/blog/2005/09/16/xi-how-to-test-your-mapping-in-real-life-scenarios
Regards
Bhavesh
Maybe you are looking for
-
How to restore only the notes from icloud?
Dear Community, I'd like to know how to use icloud on your phone, not on mac or pc, in depth. I've done some research on my own and found out how, but I just couldn't experiment on my own since it might be wrong and remove all my current data, such a
-
I have recently noticed that I am getting strange files that I am not sure were they are coming from. The files when opened using VI show the text of MUTX and that is all they say. They are names starting with 0x, followed by a rather long string of
-
Photoshop CS6 trial runs at 25% CPU constantly
I'm using the trial of Photoshop CS6 extended but shortly after I start working on a document, I get a warning that it is taking up high CPU. When I check the windows task manager I can see that it's running at 25% CPU contstantly. I have a quad core
-
How do you transfer my mac photos to my ipad2
How can I transfer my photos from my mac to my Ipad2?
-
Is Oracle JDeveloper 12c Studio is an all-encompassing SOA suite?
Hello, Need some clarification on this whole SOA puzzle. Turns out there are more than one "current" version of Jdevelopers. Oracle SOA's latest release is 11g. Jdeveloper Suite latest release is 12c. When you download SOA Suite from OTN, you