JDBC 2.0 call in Oracle 8i problem?
When I use getString() for a VARCHAR2 field to fetch, I am getting junk characters. However this works fine with a column defined as NUMBER. Also it works fine when I use the default conn.createStatement() //without parameters!
Any one came across this before? Any help?
Here is the code snippet...
Connection conn = <db connection>
OracleStatement stmt = (OracleStatement)conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
String SQL="select name from customer";
ResultSet rs = stmt.executeQuery(SQL);
while(rs.next())
String s = getString(1);
rs.close();
null
well, in order to have these 2.0 features, the connection to the database
has to stay open.
This is not an efficient way of handling your pooled resources since they
become occupied for longer times.
Instead read in the data to your EJB, and then return the connection to the
pool.
Filip
"Ken" <[email protected]> wrote in message
news:[email protected]..
>
I've configured a DataSource object wrapping a Connection Pool using theurl=jdbc:weblogic:oracle
and driver=weblogic.jdbc.oci.Driver. I've successfully deployed a coupleof EJBs
that utilize this DataSource for data retrieval. However, both of themethods
below throw SQLException similar to those at the end of this post.
sqlStmt = theConnection.prepareStatement(sqlCommand,ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs.absolute(startrow);
java.sql.SQLException: This JDBC 2.0 method is not implemented
at weblogic.jdbc.oci.Connection.prepareStatement(Connection.java:765)
atweblogic.jdbc.common.internal.ConnectionEnv.getStatementHolderForCachedPrepa
red(ConnectionEnv.java:377)
at weblogic.jdbc.pool.Connection.prepareStatement(Connection.java:402)
atweblogic.jdbc.rmi.internal.ConnectionImpl.prepareStatement(ConnectionImpl.ja
va:313)
atweblogic.jdbc.rmi.SerialConnection.prepareStatement(SerialConnection.java:40
3)
>
java.sql.SQLException: This JDBC 2.0 method is not implemented
at weblogic.jdbc.oci.ResultSet.absolute(ResultSet.java:1096)
at weblogic.jdbc.pool.ResultSet.absolute(ResultSet.java:478)
atweblogic.jdbc.rmi.internal.ResultSetImpl.absolute(ResultSetImpl.java:695)
at weblogic.jdbc.rmi.SerialResultSet.absolute(SerialResultSet.java:830)
Any recommendations would be appreciated.
Similar Messages
-
Stored Procedure call to Oracle - issue
hi ,
I am trying to call a receiver JDBC adapter to call an oracle stored procedure -
I got this error ->
java.sql.SQLException: ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call - which I understand is related to mismatch btw the XML and Stored procedure
I checked the XMl and it matches the stored procedure call. I have two specific questions -
1) I have used SAP Note 801367 to have a look at the SQl command sent to the db.. However I do not see the stored procedure in the Audit logs...Does this feature work for Stored procedures too?
2) Can you look at the XML sent to the JDBC adapter...I saw something wierd... even though I had declared the isOutput attribute first and then attribute type... when I loaded the MT into the mapping the order changed...Does than matter?
<customer_id isInput="true" type="VARCHAR">5000123</customer_id>
<product_id isInput="true" type="VARCHAR">0041003</product_id>
<serial_number isInput="true" type="VARCHAR">1</serial_number>
<effective_date isInput="true" type="VARCHAR">2010-03-16</effective_date>
<quantity isInput="true" type="NUMERIC">1.000</quantity>
<currency_code isInput="true" type="VARCHAR">USD</currency_code>
<dist_channel_id isInput="true" type="VARCHAR">11</dist_channel_id>
<division_id isInput="true" type="VARCHAR">04</division_id>
<org_unit_id isInput="true" type="VARCHAR">1005</org_unit_id>
<config_name isInput="true" type="VARCHAR" />
<resolved_price type="NUMERIC" isOutput="true" />
<resolved_currency type="VARCHAR" isOutput="true" />
<contract_id type="VARCHAR" isOutput="true" />
<contract_desc type="VARCHAR" isOutput="true" />
<contract_owner_id type="VARCHAR" isOutput="true" />
<payment_terms type="VARCHAR" isOutput="true" />
<product_group_id type="VARCHAR" isOutput="true" />
<commitment_id type="VARCHAR" isOutput="true" />
<tier_index type="VARCHAR" isOutput="true" />
<shipping_flag type="VARCHAR" isOutput="true" />
<result_code type="VARCHAR" isOutput="true" />
<exec_time type="NUMERIC" isOutput="true" />
java.sql.SQLException: ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in callArvind,
Just to be sure: are all inputs to yourstored procedure of type varchar, or are there maybe inputs with different types?
A mismatch between the type specified in the XML and the expected inputs of the SP can also cause this error.
Regards,
Koen -
JDBC 2/Oracle driver problems
Hello,
I am trying to use use JDBC 2 features on an oracle 8 database. I was told that this was possible as long as i used the correct driver (Oracle 8.1.6). I have downloaded this driver, added it to the projects library's, changed JDevelopers IDE Classpath to point to "classes12.zip".
However when i try to set up a simple connection to the database i get errors, but when i switch back to the old oracle driver (8.1.5) it works ok). Below is the code that i use to connect to the DB:
try
DriverManager.setLogWriter(errorOut);
DriverManager.registerDriver (new
oracle.jdbc.driver.OracleDriver());
con = DriverManager.getConnection
(url,"cdr","test");
System.out.println("Coneecting to db using
" + url);
catch (Exception ex)
The above code fails and produces the following errors/exceptions:
DriverManager.initialize: jdbc.drivers = null
JDBC DriverManager initialized
registerDriver: driver[className=oracle.jdbc.driver.OracleDriver,oracle.jdbc.driver.OracleDriver@3779]
registerDriver: driver[className=oracle.jdbc.driver.OracleDriver,oracle.jdbc.driver.OracleDriver@37b8]
DriverManager.getConnection("jdbc racle:thin:@212.240.193.99:1521:inspect")
trying driver[className=oracle.jdbc.driver.OracleDriver,oracle.jdbc.driver.OracleDriver@3779]
Exception occurred during event dispatching:
java.lang.NoClassDefFoundError: oracle/jdbc2/Blob
void oracle.jdbc.dbaccess.DBAccess.setNlsParamsClient(oracle.jdbc.driver.OracleConnection)
void oracle.jdbc.ttc7.TTC7Protocol.initNls(oracle.jdbc.driver.OracleConnection)
void oracle.jdbc.driver.OracleConnection.<init>(oracle.jdbc.dbaccess.DBAccess, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.util.Properties)
java.sql.Connection oracle.jdbc.driver.OracleDriver.getConnectionInstance(oracle.jdbc.dbaccess.DBAccess, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.util.Properties)
java.sql.Connection oracle.jdbc.driver.OracleDriver.connect(java.lang.String, java.util.Properties)
java.sql.Connection java.sql.DriverManager.getConnection(java.lang.String, java.util.Properties, java.lang.ClassLoader)
java.sql.Connection java.sql.DriverManager.getConnection(java.lang.String, java.lang.String, java.lang.String)
nullHi,
Sorry, I didn't look closely enough at your error stack. The problem appears to be with the Blob class. This class has moved from classes12.zip.
In the Oracle JDBC Developer's Guide and Reference docs (8.1.6), there is a section on upgrading from JDK 1.1.x to JDK 1.2:
Migration from JDK 1.1.x to JDK 1.2.x
The only migration requirements in going from JDK 1.1.x to JDK 1.2.x are as follows:
Remove your imports of the oracle.jdbc2 package, as discussed above under "Datatype Support".
Replace any direct references to oracle.jdbc2.* interfaces with references to the standard java.sql.* interfaces.
Type map objects (for mapping SQL structured objects to Java types), which must extend the java.util.Dictionary class under JDK 1.1.x, must
implement the java.util.Map interface under JDK 1.2.x. Note, however, that the class java.util.Hashtable satisfies either requirement. If you used
Hashtable objects for your type maps under JDK 1.1.x, then no change is necessary. For more information, see "Creating a Type Map Object and Defining
Mappings for a SQLData Implementation".
If these points do not apply to your code, then you do not need to make any code changes or recompile to run under JDK 1.2.x. -
JDBC calling an Oracle PL/SQL Package?
Does anyone know how to have JDBC call an Oracle PL/SQL Package?
Thanks, JonReview the CallableStatement object in the JDBC Developers Guide
-
Hi
While calling From Oracle Forms 11g patch set 2(11.1.1.3.0) to Oracle Reports 11g patch set 2(11.1.1.3.0) I found unable to run report error
But its finely working in 10g. The Place of error is in find_report_object
Is any solution to resolve this problem like any registry setting or patches to solve this problem
Please guide me
Regards
Murali N SI was able to download it from this link:
[http://download-llnw.oracle.com/otn/java/jdeveloper/11.1.1.3.0/jdevstudio11113install.exe]
on the general 11g Fusion download page at:
[http://www.oracle.com/technology/software/products/middleware/index.html]
Although the site does appear to be having problems. I got intermittent errors of the page/server not being available. -
Calling a Oracle Stored Procedure which will take a while to complete
Hey.
I'm calling a Oracle stored procedure which goes of and do a whole lot of things and therefore takes a fair while to complete.
Currently I am doing this:
String sql = "begin concorde.start_transfer(); end;";
HibernateUtil.getSessionFactory().openStatelessSession().connection().prepareCall(sql).execute();
....Where HibernateUtil is just a mean to get to the SessionFactory. The connection I get is the same one as a JDBC, I think.
I would want to regain control of the application as soon as the procedure is called and continue with the rest of the logic.
How do I do that? Do I have to initiate it from a different thread?
ThanksIf it was me I wouldn't have a stored proc that took a while to complete. Instead I would submit a job to job queue. In terms of implementation I would call a proc that writes a record to a table. Then a process in the database polls that table and runs jobs it finds there. Then reports results somewhere.
Sometime later you collect the results.
But without that then the solution in java is obvious - create a thread. -
XI calling an Oracle Stored Procedure which returns an Object to XI
I am currently trying to call an Oracle Packaged/Procedure from XI which accepts a couple of parameters as I/O and returns an Object as one of the parameters.
I have created the Object within the Oracle Database CREATE OR REPLACE TYPE xy_jdbc AS OBJECT
column_name type ...etc
CREATE OR REPLACE TYPE xy_tab_jdbc AS TABLE OF xy_jdbc;
One of the parameters for the stored procedure is set up as this type xy_tab_jdbc this will be populated based upon one of the parameters passed into the Package/Procedure.
Is this possible? If it is, how do I map the returned object within XI?Dear Hilary,
the JDBC adapter does not support vendor-specific or non-scalar data types.
Workaround: Change the stored proc's signature not to use an object, but the object's fields instead.
Regards,
Thilo -
Pass a null value to a JDBC stored procedure call?
pass a null value to a JDBC stored procedure call? Is this even possible? My DBA gave me a procedure to call that sometimes requires a null value. I don't think this is even possible.
do you mind tell me how to resolve your problem?i using the setnull method,but it doesn't work.
-
Hi to everybody,
i have oracle 9i and select and other queries work fine accept stored procedure. The strange thing is that these stored procedures are working fine on sql tools..
this is my connection to oracle db:
Context ictx = new InitialContext(env);
DataSource ds=(javax.sql.DataSource)(ictx.lookup("java:/OracleDS"));
Connection cnn = ds.getConnection();
the driver is OracleDriver and the connection is thin connection type
and this is where i call sp:
String sqlClause = " {call R_REQUESTACTION_INSERT(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)}";
cs = cnX.prepareCall(sqlClause);
cs.setString (1, user.getUserFirm() ); //1
cs.setString (2, user.getUserOrganization() ); //2
cs.setString (3, user.getAdUserId() ); //3
cs.setString (4, user.getAdUserId() ); //4
cs.setString (5, musteriTemsilcisi ); //5
cs.setString (6, aksiyonTipi ); //6
cs.setTimestamp (7, dateNextActionTime ); //7
cs.setString (8, musteriNumarasi ); //8
cs.setString (9, musteriYetkilisi ); //9
cs.setString (10, gonderilecekMetin ); //10
cs.setString (11, aksiyonSonucu ); //11
cs.setString (12, actionId ); //12
cs.setString (13, requestId ); //13
cs.setString (14, daireNo ); //14
cs.executeUpdate();
cnX.commit();
And it gives the error below:
java.sql.SQLException: ORA-00900: invalid SQL statement
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:579)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1894)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1094)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2132)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2015)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2877)The error message: ORA-00900: invalid SQL statement
Anybody has any idea?Hello,
I don't know much about this issue, but wanted to point out that while someone else here maybe able to help, you might get a better response posting this to the JDBC forum at:
http://forums.oracle.com/forums/forum.jspa?forumID=99
Best Regards,
Chris -
How to call an Oracle Procedure and get a return value in Php
Hi Everyone,
Has anyone tried calling an Oracle procedure from Php using the ora functions and getting the return value ? I need to use the ora funtions (no oci)because of compatibility and oracle 7.x as the database.
The reason why I post this here is because the ora_exec funtion is returning FALSE but the error code displayes is good. Is this a bug in the ora_exec funtion ?
My code after the connection call is as follows:
$cur = ora_open($this->conn);
ora_commitoff($this->conn);
$requestid = '144937';
echo $requestid;
$rc = ora_parse($cur, "begin p_ins_gsdata2
(:requestid, :returnval); end;");
if ($rc == true) {
echo " Parse was successful ";
$rc2 = ora_bind ($cur, "requestid", ":requestid", 32, 1);
if ($rc2 == true) echo " Requestid Bind Successful ";
$rc3 = ora_bind ($cur, "returnval", ":returnval", 32, 2);
if ($rc3 == true) echo " Returnval Bind Successful ";
$returnval = "0";
$rc4 = ora_exec($cur);
echo " Result = ".$returnval." ";
if ($rc4 == false) {
echo " Exec Returned FALSE ";
echo " Error = ".ora_error($cur);
echo " ";
echo "ErrorCode = ".ora_errorcode($cur);
echo "Error Executing";
ora_close ($cur);
The Oracle procedure has a select count from a table and it returns the number of records in that table. It's defined as:
CREATE OR REPLACE procedure p_ins_gsdata2 (
p_requestid IN varchar2 default null,
p_retcode OUT varchar2)
as
BEGIN
SELECT COUNT (*) INTO p_retcode
FROM S_GSMRY_DATA_SURVEY
WHERE request_id = p_requestid ;
COMMIT;
RETURN;
END;
Nothing much there. I want to do an insert into a table,
from the procedure later, but I figured that I start with a select count since it's simpler.
When I ran the Php code, I get the following:
144937
Parse was successful
Requestid Bind Successful
Returnval Bind Successful
Result = 0
Exec Returned FALSE
Error = ORA-00000: normal, successful completion -- while
processing OCI function OBNDRA
ErrorCode = 0
Error Executing
I listed the messages on separate lines for clarity. I don't understand why it parses and binds o.k. but the exec returns false.
Thanks again in advance for your help. Have a great day.
Regards,
Rudiretcode=`echo $?`is a bit convoluted. Just use:
retcode=$?I see no EOF line terminating your input. Your flavour of Unix might not like that - it might ignore the command, though I'd be surprised (AIX doesn't).
replace the EXEC line with :
select 'hello' from dual;
and see if you get some output - then you know if sqlplus commands are being called from your script. You didn't mentioned whether you see the banner for sqlplus. Copy/paste the output that you get, it will give us much more of an idea. -
OIM 9.1.0.2 - Weblogic JDBC Multi Data Sources for Oracle RAC
Does OIM OIM 9.1.0.2 BP07 support Weblogic JDBC Multi Data Sources (Services>JDBC>Multi Data Sources) for Oracle RAC instead of inserting the "Oracle RAC JDBC URL" on JDBC Data Sources for xlDS and xlXADS (Services>JDBC>Data Sources> xlDS|xlXADS > Connection Poll> URL) ?
If yes, is there are any other modifications that need to be made on OIM, or just changing the data sources?Yes, it's supported. You install against one instance directly of the Rac Server. Then you update the config.xml file and the jdbc resource in your weblogic server with the full rac address. It is documented for installation against RAC. http://docs.oracle.com/cd/E14049_01/doc.9101/e14047/database.htm#insertedID2
-Kevin -
C# DLL Calls in Oracle Forms 6i
Dear all,
I want to call a C# ( C Sharp) functions in Oracle Forms 6i , How it is possible , If any body knows give me a suggestion...
C# Codes
using System;
using System.Collections.Generic;
using System.Text;
namespace MathFunctions
public class AddClass
public static int Add(int a, int b)
return (a + b);
same codes I want to call using Oracle Forms 6i . ... ( AddClass.Add(10,20) ) value should return 30.
C# Developer created the DLL file and given to me , I am not able to attach the DLL , anybody interest I can send the DLL through E-mail ,
Regards,
Veera.
[email protected]The Forms Builder Help is the best source of information. It has plenty of examples too, like this one I copied from the Help:
/* Find foreign library handle for
a given library name */
BEGIN
libhandle := ora_ffi.find_library
('mylib.dll');
END; -
Use jdbc to connect servlet to oracle 8.1.6 database on win2k
The code is below:
package moreservlets;
import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
/** Simple servlet used to test JDBC connection. */
public class TitleQueries extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String title = "Connecting to Database";
DriverManager.registerDriver (new
oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection
("jdbc:oracle:thin:@pc840:1521:orcl", "scott", "tiger");
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery
("select ename from emp");
while (rset.next()) {
String name = rset.getString("ename");
out.println(ServletUtilities.headWithTitle(title) +
"<body bgcolor=\"#FDF5E6\">\n" +
"<h1 align=\"center\">" + name + "</h1>\n" +
"</body></html>");
CLASSPATH=.;C:\J2ee;C:\j2sdkee1.3.1\lib\cloudscape;C:\Program Files\Apache Tomcat 4.0\common\lib\servlet.jar;C:\Oracle\Ora81\orb\classes\yoj.jar;C:\Oracle\Ora81\orb\classes\share.zip
My code cannot find the JDBC driver. Any suggestions?
Thanks.
I get the following errors:
C:\J2ee\moreservlets>javac -d "C:\Program Files\Apache Tomcat 4.0\webapps\ROOT\
EB-INF\classes" TitleQueries.java
TitleQueries.java:19: package oracle.jdbc.driver does not exist
oracle.jdbc.driver.OracleDriver());
^
TitleQueries.java:31: cannot resolve symbol
symbol : variable name
location: class moreservlets.TitleQueries
"<h1 align=\"center\">" + name + "</h1>\n" +
^
2 errorsI changed my classpath variable and my servlet
compiles okay with the:
"import oracle.jdbc.driver.*" statement.
However, I still get the following error.
Why can't it find the jdbc driver, since it finds the
import statement?
Apache Tomcat/4.0.3
Error loading driver: java.lang.ClassNotFoundException: oracle.jdbc.driver.Oracl
eDriver
WebappClassLoader: Resource '/WEB-INF/classes/moreservlets/ServletUtilities.cl
ass' was modified; Date is now: Tue Jul 02 09:57:26 CDT 2002 Was: Tue Jul 02 09:
37:20 CDT 2002
Error loading driver: java.lang.ClassNotFoundException: oracle.jdbc.driver.Oracl
eDriver
CLASSPATH=.;C:\J2ee;C:\j2sdkee1.3.1\lib\cloudscape\RmiJdbc;C:\Program Files\Apache Tomcat 4.0\common\lib\servlet.jar;C:\Oracle\Ora81\jdbc\lib\classes12.zip;C:\Oracle\Ora81\orb\classes\yoj.jar;C:\Program Files\Oracle\JDeveloper 3.2.3\jdbc\lib\oracle8.1.7\classes12.zip;C:\Oracle\Ora81\orb\classes\share.zip
//code begins here
package moreservlets;
import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import oracle.jdbc.driver.*;
public class TitleQueries extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection
("jdbc:oracle:thin:@pc840:1521:orcl", "scott", "tiger");
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery
("select * from emp");
out.println(ServletUtilities.headWithTitle(title) +
"<body bgcolor=\"#FDF5E6\">");
while (rset.next()) {
out.println("<h1 align=\"center\">"
+ rset.getString("ename") + "</h1>\n");
out.println("</body></html>");
catch(ClassNotFoundException cnfe) {
System.err.println("Error loading driver: " + cnfe);
catch(SQLException sqle) {
System.err.println("Error connecting: " + sqle);
} -
We bought an iphone 4s for our daughter. We transfered it to straight talk. She can make calls and text no problem. She can use the WiFi but is unable to use the internet or mms. How do we update the APN?
To clarify for anyone who is still having any problems doing this.
1. Unlock your phone with the carrier ( I know the process will work if it is jail broken but I am assuming you dont want to void the warranty on your phone) NOTE: even if you purchased the phone outright at Wal-Mart it is still locked to ATT so you will have to unlock the phone. If it's already unlocked skip to step 2. This works and will work even if you update the phone.
1a Here is the link to unlock a ATT iphone. Simply follow the instructions https://www.att.com/deviceunlock/client/en_US/
2. Get a T- mobile SIM. Even if you don't want the service, if you feign interest, they will send you one for free or 99cents. If you need it now you can get one at a T-mobile store too.
3. Once you have both your Straight talk SIM and your T-mobile SIM follow these instructions:http://www.youtube.com/watch?v=mFFf5uqk18M
4. If you have any remaining questions look at all the responses posted previously on this thread or check out the Howard Forums Wiki: http://wiki.howardforums.com/index.php/Straight_Talk_iPhone
Everything should work flawlessly at this point. If not let me know and I'm happy to help when I can. I hope this makes doing this very easy for everyone in the future. God Bless -J -
Call to Oracle stored procedure that returns ref cursor doesn't work
I'm trying to use an OData service operation with Entity Framework to call an Oracle stored procedure that takes an number as an input parameter and returns a ref cursor. The client is javascript so I'm using the rest console to test my endpoints. I have been able to successful call a regular Oracle stored procedure that takes a number parameter but doesn't return anything so I think I have the different component interactions correct. When I try calling the proc that has an ref cursor for the output I get the following an error "Invalid number or type of parameters". Here are my specifics:
App.config
<oracle.dataaccess.client>
<settings>
<add name="PGDATA_WC.ODATAPOC.GETWORKORDERSBYWINDFARMID.RefCursor.P_RESULTS" value="implicitRefCursor bindinfo='mode=Output'" />
<add name="PGDATA_WC.ODATAPOC.GETWORKORDERSBYWINDFARMID.RefCursorMetaData.P_RESULTS.Column.0" value="implicitRefCursor metadata='ColumnName=WINDFARM_ID;BaseColumnName=WINDFARM_ID;BaseSchemaName=PGDATA_WC;BaseTableName=WORKORDERS;NATIVEDATATYPE=Number;ProviderType=Int32'" />
<add name="PGDATA_WC.ODATAPOC.GETWORKORDERSBYWINDFARMID.RefCursorMetaData.P_RESULTS.Column.1" value="implicitRefCursor metadata='ColumnName=STARTTIME;BaseColumnName=STARTTIME;BaseSchemaName=PGDATA_WC;BaseTableName=WORKORDERS;NATIVEDATATYPE=Varchar2;ProviderType=Varchar2'" />
<add name="PGDATA_WC.ODATAPOC.GETWORKORDERSBYWINDFARMID.RefCursorMetaData.P_RESULTS.Column.2" value="implicitRefCursor metadata='ColumnName=ENDTIME;BaseColumnName=ENDTIME;BaseSchemaName=PGDATA_WC;BaseTableName=WORKORDERS;NATIVEDATATYPE=Varchar2;ProviderType=Varchar2'" />
<add name="PGDATA_WC.ODATAPOC.GETWORKORDERSBYWINDFARMID.RefCursorMetaData.P_RESULTS.Column.3" value="implicitRefCursor metadata='ColumnName=TURBINE_NUMBER;BaseColumnName=TURBINE_NUMBER;BaseSchemaName=PGDATA_WC;BaseTableName=WORKORDERS;NATIVEDATATYPE=Varchar2;ProviderType=Varchar2'" />
<add name="PGDATA_WC.ODATAPOC.GETWORKORDERSBYWINDFARMID.RefCursorMetaData.P_RESULTS.Column.4" value="implicitRefCursor metadata='ColumnName=NOTES;BaseColumnName=NOTES;BaseSchemaName=PGDATA_WC;BaseTableName=WORKORDERS;NATIVEDATATYPE=Varchar2;ProviderType=Varchar2'" />
<add name="PGDATA_WC.ODATAPOC.GETWORKORDERSBYWINDFARMID.RefCursorMetaData.P_RESULTS.Column.5" value="implicitRefCursor metadata='ColumnName=TECHNICIAN_NAME;BaseColumnName=TECHNICIAN_NAME;BaseSchemaName=PGDATA_WC;BaseTableName=WORKORDERS;NATIVEDATATYPE=Varchar2;ProviderType=Varchar2'" />
<add name="PGDATA_WC.ODATAPOC.GETWORKORDERSBYID.RefCursor.P_RESULTS" value="implicitRefCursor bindinfo='mode=Output'" />
</settings>
OData Service Operation:
public class OracleODataService : DataService<OracleEntities>
// This method is called only once to initialize service-wide policies.
public static void InitializeService(DataServiceConfiguration config)
// TODO: set rules to indicate which entity sets and service operations are visible, updatable, etc.
// Examples:
config.SetEntitySetAccessRule("*", EntitySetRights.All);
config.SetServiceOperationAccessRule("GetWorkOrdersByWindfarmId", ServiceOperationRights.All);
config.SetServiceOperationAccessRule("CreateWorkOrder", ServiceOperationRights.All);
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
[WebGet]
public IQueryable<GetWorkOrdersByWindfarmId_Result> GetWorkOrdersByWindfarmId(int WindfarmId)
return this.CurrentDataSource.GetWorkOrdersByWindfarmId(WindfarmId).AsQueryable();
[WebGet]
public void CreateWorkOrder(int WindfarmId)
this.CurrentDataSource.CreateWorkOrder(WindfarmId);
Here is the stored procedure:
procedure GetWorkOrdersByWindFarmId(WINDFARMID IN NUMBER,
P_RESULTS OUT REF_CUR) is
begin
OPEN P_RESULTS FOR
select WINDFARM_ID,
STARTTIME,
ENDTIME,
TURBINE_NUMBER,
NOTES,
TECHNICIAN_NAME
from WORKORDERS
where WINDFARM_ID = WINDFARMID;
end GetWorkOrdersByWindFarmId;
I defined a function import for the stored procedure using the directions I found online by creating a new complex type. I don't know if I should be defining the input parameter, WindfarmId, in my app.config? If I should what would that format look like? I also don't know if I'm invoking the stored procedure correctly in my service operation? I'm testing everything through the rest console because the client consuming this information is written in javascript and expecting a json format. Any help is appreciated!
Edited by: 1001323 on Apr 20, 2013 8:04 AM
Edited by: jennyh on Apr 22, 2013 9:00 AMMaking the change you suggested still resulted in the same Oracle.DataAccess.Client.OracleException {"ORA-06550: line 1, column 8:\nPLS-00306: wrong number or types of arguments in call to 'GETWORKORDERSBYWINDFARMID'\nORA-06550: line 1, column 8:\nPL/SQL: Statement ignored"} System.Exception {Oracle.DataAccess.Client.OracleException}
I keep thinking it has to do with my oracle.dataaccess.client settings in App.Config because I don't actually put the WindfarmId and an input parameter. I tried a few different ways to do this but can't find the correct format.
Maybe you are looking for
-
In the new iphoto app, why can't i save multiple images to camera roll at once?
why can't i save multiple images to camera roll at once? it seems i can only save one at a time and its very frustrating.. the options seem to be there, they are just greyed out and i cant click on them. at first i thought its because the images were
-
Hi I tried to get my Mac air to factory settings, but i ended eraser everything and i dont't remmenber the Apple ID i used on it. Know i can not do anything, it keeps ask me the Apple ID, I use the one i have in my iPhone and it says that it don't ha
-
How do I stop my panels from being visible while in InDesign CS5's presentation mode?
Hey there, I have a quick question... So when I'm not working with two monitors I sporadically have this problem where when I enter InDesign CS5's (on a Mac) presentation mode (shift W) all of my panels (color, pages, swatches, pathfinder etc) are vi
-
Oracle BI: Right Choice?
Hello, We are in process of revamping our reporting solution. We want to publish our reports over the internet with some graphics (charts, graphs, scales, meters, etc). Also want reports where business user can drill down into different level and als
-
Hi all, I have created a component which was active earlier, but when i did some modification in the same component and tried to activate, it displayed errors .So i just want to bring back to original version. Please suggest me any links or solutions