EA2 : Cursor result support?
I have been eagerly anticipating the release of 1.5 in the hope that cursor results would have support. I have been scouring the forums and have found mention of them but nowhere is there a definitive explanation of how to view the cursor results. Please bear in mind that we have strict controls over packages and schemas and the creating and compiling of "helper" procedures just to output cursor results is heavily frowned upon. Other than that I am a current PL/SQL Develper and am trying desperately to get off windows and onto Linux completely and your product has given me a glimpse of light at the end of the tunnel. Keep up the awesome work
Okay guys, looks like we're getting our lines crossed. I am currently using PL/SQL developer and it has a very nice testing interface for procedures which return cursors as their results. You simply execute the procedure and then click on the cursor parameter and it opens up, as a table ( similar to the standard query results view ) and you can scroll through it as you would a normal query result.
I am using 1.5 Early Adopter 2 (1.5.0.52.03).
All I wanted to know is if there is/will be similar support for cursors in SQL Developer as there is in PL/SQL Developer, and if there already is ( and I mean built in support, not some workaround ) how to I get it/use it/see it??
thanks
Mark
P.S. Still in awe of this free software...
Similar Messages
-
Stored procedure that returns a cursor (result set)
Hi,
We have a stored procedure that returns a cursor (result set) but when I compliled it and catalouged (introspected) it in the OBPM I got all the primitive type parameters (either IN or OUT) in the proc call except the cursor type (the result set) which is the out param of the stored proc.
Any pointers please?
ThanksResult set is of RowType and is not supported as a Stored Procedure as far as I know.
HTH
Sharma -
We recently deployed SharePoint 2013 Foundation but can't make Quick View (seeing the contents of a file when you hover the mouse cursor over it) work in the search results.
All Site Collection/Site Features are turned on. Not sure what else to do.
Does anyone have this feature working in SharePoint 2013 Foundation?
Thank you!Hi Charlie,
To view the Preview of the Search Results you need to Install/Configure Office Web Apps Server in your farm.
Please check the below links for reference.
http://technet.microsoft.com/en-us/library/ee855124(v=office.15).aspx
http://technet.microsoft.com/en-in/library/ff431687(v=office.15).aspx
If you think is helpful,Vote As Helpful! And if you see a reply being an answer to the question of the thread, click Mark As Answer.
Mahesh -
Hi,
I've a staging table with one column
result_id :100,101,102 etc
I need to query another table say stage2 which consists of many columns including result_id
so If I found result id in stage 2 then I want to update that table flag enable_flag=y and give a count in a log file say : no of records updated
If I won't find id in table2 , I've to move on with other ids by putting a message in a log file says :'This id has no value in stage2'
and provide count :no of ids don't have any value:
Any simple and efficent way of doing this ?
Thanks,
Kiran>
say in stage1 If I've an id 191 which is not there in stage 2 Then I need to put that in logifile
>
Are you saying that if IDs 191, 192 and 193 are not in the stage 2 table you need to log a separate count for each ID?
If so then you should add a query to Solomon's code that executes before the UPDATE statement.
The query would get IDs from STAGE1 and a count of the number of those IDs that are in STAGE2. You would use these results to do the logging that you want to do. Then you would do the update shown in Solomon's code.
SELECT S1.RESULT_ID, COUNT(S1.RESULT_ID) ID_COUNT
FROM STAGE1 S1, STAGE2 S2
WHERE S1.RESULT_ID (+) = S2.RESULT_ID
GROUP BY S1.RESULT_IDThe result set records with a count of zero are the IDs that are not in the STAGE2 table. The other records have the count of how many records will get updated.
You can use the above query as a cursor to do logging. -
Running queries against cursor results?
I'm running a cursor in a stored procedure, and the query itself is dependent on one of the parameters passed to the SP. So, for example:
create procedure annoying as
SQLString varchar2(50);
myCursor Types.cursorType; -- defined elsewhere in pkg.
begin
if parameter = 1 then SQLString = "select x,y from table1";
if parameter = 2 then SQLString = "select x,z from table2";
open myCursor for SQLString;
At this point, I need to run a further query against the result set from the cursor. I have no clue how to proceed with this. Am I barking up the wrong tree? Should I be looking for a different solution?Instead of looping through a cursor and comparing the values of x, use the entire select statement that you would have used for the cursor as an inline view (select statement in the from clause) in your subsequent cursor and join via x. Please see the example below. You can continue this nesting for as many levels as required. For example, instead of opening the ref cursor for sqlstring2, you could use that as an inline view in another sqlstring3 and open the ref cursor for sqlstring3.
scott@ORA92> create or replace package types
2 as
3 type cursortype is ref cursor;
4 end types;
5 /
Package created.
scott@ORA92> show errors
No errors.
scott@ORA92> create or replace procedure annoying
2 (parameter in number,
3 myCursor out Types.cursortype)
4 as
5 SQLString varchar2(50);
6 sqlString2 varchar2(4000);
7 begin
8 if parameter = 1 then SQLString := 'select deptno x, dname y from dept';
9 elsif parameter = 2 then SQLString := 'select deptno x,loc z from dept';
10 end if;
11 sqlstring2 := 'select e.empno, d.*
12 from emp e,
13 (' || sqlstring || ') d -- inline view
14 where e.deptno = d.x';
15 open myCursor for SQLString2;
16 end annoying;
17 /
Procedure created.
scott@ORA92> show errors
No errors.
scott@ORA92> variable g_ref refcursor
scott@ORA92> execute annoying (1, :g_ref)
PL/SQL procedure successfully completed.
scott@ORA92> print g_ref
EMPNO X Y
7934 10 ACCOUNTING
7839 10 ACCOUNTING
7782 10 ACCOUNTING
7902 20 RESEARCH
7876 20 RESEARCH
7788 20 RESEARCH
7566 20 RESEARCH
7369 20 RESEARCH
7900 30 SALES
7844 30 SALES
7698 30 SALES
7654 30 SALES
7521 30 SALES
7499 30 SALES
14 rows selected.
scott@ORA92> execute annoying (2, :g_ref)
PL/SQL procedure successfully completed.
scott@ORA92> print g_ref
EMPNO X Z
7934 10 NEW YORK
7839 10 NEW YORK
7782 10 NEW YORK
7902 20 DALLAS
7876 20 DALLAS
7788 20 DALLAS
7566 20 DALLAS
7369 20 DALLAS
7900 30 CHICAGO
7844 30 CHICAGO
7698 30 CHICAGO
7654 30 CHICAGO
7521 30 CHICAGO
7499 30 CHICAGO
14 rows selected. -
Is it possible to ref cursor(result set) as in parameter to procedure/funct
Hi,
I am getting a resultset/ref cursor from the Java side to the procedure/function as in parameter. Is this possible in oracle 10g.
If yes can body send the links/suggestions describing some examples.
Thanks,I am getting a resultset/ref cursor from the Java
side to the procedure/function as in parameter. Is
this possible in oracle 10g. It is possible, but it sounds like you have your application design entirely backwards.
A ref cursor is designed to be used to pass a result set from a stored procedure to a client or calling application.
So while you could use a screwdriver to hammer in a nail, you probably would not want to. -
Cursor stream support through session bean
we use toplink wrapped in a session bean to do database queries. we want the query results returned in a cursor stream way. since we make the session bean's transaction attribute as 'required'(kinda required by toplink), we ran into some problems:
* in websphere, the second time we do getNextResults(int) from the cursor stream, we get the error saying the ResultSet has been closed.
* in weblogic, similar problem existed with version 6, but now everything works fine with version 7.
i understand this is likely caused by the container managed transaction(commited or something). but any tricks to get this arround? or by design, there is a better way to handle this kind of cursor stream query in general?
thx.You could try holding the transaction open until the client is finished with the cursor. You could do this through only using the cursor within the SessionBean's transactional method, or through begining a JTS transaction from the client of the SessionBean to wrap the cursor usage.
Switching to use TopLink's internal connection pooling may also be another workaround, but this may conflict with your app server/JTS usage. -
Restricting on a cursor result
Task:
1. I would like to make reports for a system.
2. I want to make the reports with an out sys_refcursor
3. I want to pass in some cursor with ids, to restrict report.
So here's the code I got so far:
procedure customer_status_distribution(c_universe sys_refcursor,
t_result out sys_refcursor) is
v_table_of_number table_of_number;
begin
fetch c_universe bulk collect
into v_table_of_number;
open t_result for with a as(
select column_value column_value
from table(cast(v_table_of_number as table_of_number)))
select t.alder, count(*)
from customer_aggregation t
where customer_id in(select column_value from a)
group by t.alder;
end;
c_universe is containing just numbers of course.
The problem with this is that it doesn't use the index on customer_aggregation.customer_id column.
I can add /*+RULE*/ and it uses the index, but I do not want that, since the actual reports are quite more complex, and will use different technuiqes for optimizing.
exists() clause does not use index.
/*+ index(customer_aggregation name_of_index)*/ doesn't do it.
Am I going about this the wrong way? Any ideas?Following code:
fetch c_universe bulk collect
into v_table_of_number;
open t_result for
select t.alder, count(*)
from customer_aggregation t
where exists(select * from table(cast(v_table_of_number as table_of_number)) where column_value = t.customer_id)
group by t.alder;
gives:
SELECT STATEMENT 12176732
SORT GROUP BY 12176732 1 9
NESTED LOOPS SEMI 12176729 1 9
TABLE ACCESS FULL -> CUSTOMER_AGGREGATION 1457 1521909 13697181
COLLECTION ITERATOR PICKLER FETCH
Rewrite using in:
fetch c_universe bulk collect
into v_table_of_number;
open t_result for
select t.alder, count(*)
from customer_aggregation t
where t.customer_id in(select column_value from table(cast(v_table_of_number as table_of_number)))
group by t.alder;
gives:
SELECT STATEMENT 12176732
SORT GROUP BY 12176732 1 9
NESTED LOOPS SEMI 12176729 1 9
TABLE ACCESS FULL -> CUSTOMER_AGGREGATION 1457 1521909 13697181
COLLECTION ITERATOR PICKLER FETCH
Rewrite to use hints and "in":
fetch c_universe bulk collect
into v_table_of_number;
open t_result for
select /*+index(t PK_AGGR_CUSTOMER_ID)*/ t.alder, count(*)
from customer_aggregation t
where t.customer_id in(select column_value from table(cast(v_table_of_number as table_of_number)))
group by t.alder;
end;
gives:
SELECT STATEMENT 12211234
SORT GROUP BY 12211234 1 9
NESTED LOOPS SEMI 12211231 1 9
TABLE ACCESS BY INDEX ROWID -> CUSTOMER_AGGREGATION 35959 1521909 13697181
INDEX FULL SCAN -> PK_AGGR_CUSTOMER_ID 11354 1521909
COLLECTION ITERATOR PICKLER FETCH
Rewrite using index hint and "exists":
fetch c_universe bulk collect
into v_table_of_number;
open t_result for
select /*+index(t PK_AGGR_CUSTOMER_ID)*/ t.alder, count(*)
from customer_aggregation t
where exists(select column_value from table(cast(v_table_of_number as table_of_number)) where column_value = t.customer_id)
group by t.alder;
gives:
SELECT STATEMENT 12211234
SORT GROUP BY 12211234 1 9
NESTED LOOPS SEMI 12211231 1 9
TABLE ACCESS BY INDEX ROWID -> CUSTOMER_AGGREGATION 35959 1521909 13697181
INDEX FULL SCAN -> PK_AGGR_CUSTOMER_ID 11354 1521909
COLLECTION ITERATOR PICKLER FETCH
Finally, what I want is (explain plan wise):
the code posted using a tmp_numbers table:
which gives:
SELECT STATEMENT 10
SORT GROUP BY 10 1 22
TABLE ACCESS BY INDEX ROWID -> CUSTOMER_AGGREGATION 3 1 9
NESTED LOOPS 8 1 22
SORT UNIQUE
TABLE ACCESS FULL -> TMP_NUMBERS 2 1 13
INDEX RANGE SCAN -> PK_AGGR_CUSTOMER_ID (1) 2 1
Suggestions? -
Procedure output cursor result insert to new table
Hi all,
Is there has any method to complete following task,
CREATE OR REPLACE
PROCEDURE sp1(
cv_1 OUT sys_refcursor)
AS
BEGIN
OPEN cv_1 FOR SELECT OBJECT_NAME FROM USER_OBJECTS;
END;
CREATE TABLE TEST1(OBJECT_NAME VARCHAR2(100));
var cv_1 refcursor;
INSERT INTO TEST1(OBJECT_NAME)
EXEC sp1(:cv_1);
Note: need solution apart from insert records to above table with-inside the procedure.
Thanks
Tharindu DhaneenjaYour code will not work anyway. You need to go through the SQL and PL/SQL basics again. It's always better to use pure SQL (if possible) instead of PL/SQL. You can try to insert using something like
INSERT INTO TEST1 SELECT OBJECT_NAME FROM USER_OBJECTS; -
How to hold result of query with too many characters into a cursor?
Hi, guys:
Could anyone help me on this issue? I encounter such a error: ORA-06502: PL/SQL: numeric or value error: character string buffer too small. The reason is because the returning result is too big to hold in a cursor. I know I should use clob, how can I return result of a query into a clob?
Here is my code of procedure
function Find_Near_Offenders(P_f_Resident_Latitude in float, P_f_Resident_Longitude in float, P_n_Radius in number, P_s_User_Group in varchar2, P_b_Found out boolean) return rcur_Offender AS
rcur_Offender_address rcur_Offender;
begin
if P_s_User_Group='Public' then
open rcur_Offender_address for
select distinct so.offender_id as "Offender_ID", so.first_name||' '|| so.middle_name||' '||so.last_name as "Offender_Name",
replace(replace(nvl2(sl.address1, sl.address1||' '||sl.address2 ||' '||sl.city ||' '||sl.county||' '||(select sc3.description from sor_code sc3 where sc3.code_id=sl.state)||' '||sl.zip, 'No Known Address'),'#') ,',') as "Address",
replace(replace(nvl2(sl.physical_address1,sl.physical_address1||' '||sl.physical_city ||' '||sl.physical_county||' '||(select sc4.description from sor_code sc4 where sc4.code_id=sl.physical_state)||' '||sl.physical_zip, 'No Known Address'),'#') ,',') as "Physical_Address",
nvl2(sl.ADDRESS_LATITUDE, to_char(sl.ADDRESS_LATITUDE)||','||to_char(sl.address_longitude),'') as "Address_Geocoding",
nvl2(sl.physical_address_latitude,to_char(sl.physical_address_latitude) ||','||to_char(sl.physical_address_Longitude),'') as "Physical_Geocoding"
from sor_location sl, sor_offender so, sor_offense sof, registration_offender_xref rox, sor_last_locn_v sllv
where rox.offender_id=so.offender_id
and sllv.offender_id(+)=so.offender_id
and sl.location_id(+)=sllv.location_id
and sof.offender_id=so.offender_id
and rox.status not in ('Merged')
and rox.reg_type_id=1
and upper(rox.status)='ACTIVE'
and nvl(rox.admin_validated, to_date(1,'J'))>=nvl(rox.entry_date, to_date(1,'J'))
--and sl.physical_address_latitude is null
and sl.ADDRESS_LATITUDE <=to_number(P_f_Resident_Latitude)+0.02*to_number(P_n_Radius) and sl.ADDRESS_LATITUDE>= to_number(P_f_Resident_Latitude)-0.02*to_number(P_n_Radius)
and sl.address_longitude >=to_number(P_f_Resident_Longitude)-0.02*to_number(P_n_Radius) and sl.address_longitude<=to_number(P_f_Resident_Longitude)+0.02*to_number(P_n_Radius)
and sor_google_map_service.Calculate_Distance(P_f_Resident_Latitude, P_f_Resident_Longitude, sl.ADDRESS_LATITUDE, sl.address_longitude)<=P_n_Radius
union
select distinct so.offender_id as "Offender_ID", so.first_name||' '|| so.middle_name||' '||so.last_name as "Offender_Name",
replace(replace(nvl2(sl.address1, sl.address1||' '||sl.address2 ||' '||sl.city ||' '||sl.county||' '||(select sc3.description from sor_code sc3 where sc3.code_id=sl.state)||' '||sl.zip, 'No Known Address'),'#') ,',') as "Address",
replace(replace(nvl2(sl.physical_address1,sl.physical_address1||' '||sl.physical_city ||' '||sl.physical_county||' '||(select sc4.description from sor_code sc4 where sc4.code_id=sl.physical_state)||' '||sl.physical_zip, 'No Known Address'),'#') ,',') as "Physical_Address",
nvl2(sl.ADDRESS_LATITUDE, to_char(sl.ADDRESS_LATITUDE)||','||to_char(sl.address_longitude),'') as "Address_Geocoding",
nvl2(sl.physical_address_latitude,to_char(sl.physical_address_latitude) ||','||to_char(sl.physical_address_Longitude),'') as "Physical_Geocoding"
from sor_location sl, sor_offender so, sor_offense sof, registration_offender_xref rox, sor_last_locn_v sllv
where rox.offender_id=so.offender_id
and sllv.offender_id(+)=so.offender_id
and sl.location_id(+)=sllv.location_id
and sof.offender_id=so.offender_id
and rox.status not in ('Merged')
and rox.reg_type_id=1
and upper(rox.status)='ACTIVE'
and nvl(rox.admin_validated, to_date(1,'J'))>=nvl(rox.entry_date, to_date(1,'J'))
and sl.physical_address_latitude <=to_number(P_f_Resident_Latitude)+0.02*to_number(P_n_Radius) and sl.physical_address_latitude>= to_number(P_f_Resident_Latitude)-0.02*to_number(P_n_Radius)
and sl.physical_address_Longitude >=to_number(P_f_Resident_Longitude)-0.02*to_number(P_n_Radius) and sl.physical_address_Longitude<=to_number(P_f_Resident_Longitude)+0.02*to_number(P_n_Radius)
and sor_google_map_service.Calculate_Distance(P_f_Resident_Latitude, P_f_Resident_Longitude, sl.physical_address_latitude, sl.physical_address_Longitude)<=P_n_Radius;
return rcur_Offender_address;
end if;
end;and my anonymous block is:
declare
query_result json_list;
--list_string varchar2(32000);
list_string clob;
l_cursor sor_google_map_service.rcur_Offender;
b_found boolean;
begin
l_cursor:=sor_google_map_service.find_near_offenders(35.5113030,-97.5543081, 3, 'Public', b_found);
query_result:=json_util_pkg.ref_cursor_to_json(l_cursor);
list_string:='{"Offenders": '||json_printer.pretty_print_list(query_result)||'}';
dbms_output.put_line(list_string);
end;lxiscas wrote:
I checked the PL_JSON, and I found it uses sys_refcursor, which is limited to 32K around. That doesn't make sense. A SYS_REFCURSOR has no 32k limit-- the limits are related to the data types that the SQL statement that the SYS_REFCURSOR points to uses. If that SQL statement has a CLOB column, there is effectively no limit. If that SQL statement has a VARCHAR2 column, you've got the 4000 byte limit.
and I was using varchar2 variable in anonymous block. However, my cursor result is too big to hold in a 32K space. Again, this doesn't seem to make sense. There is no such thing as a result that is too big for a cursor
Do you think I need to change PL_JSON API myself to ensure it uses CLOB? or there is anyway that I can avoid update PL_JSON package internally?If the PL_JSON package is trying to write more than 32k of data into a VARCHAR2, your options are
- Modify the package to use a CLOB
- Find some other package that implements whatever functionality you need
- Limit the data to 32k
Justin -
Cursor support and network reliability
Hi,
What kind of cursors does the 9.2i OraOLEDB provider support thru OLE DB? The docs state that ADO "static" and "forward-only" cursors are supported, but there is no specific discussion of what cursors are supported for OLE DB. Also, what OLE DB rowset properties would have to be set in order to get each cursor?
What would be most reliable cursor to use across a WAN? The reason I ask is because I am seeing that a default client cursor appears to be unreliable in this environment, succeeding at complete rowset enumeration only 5% of the time. When it does fail, there is no error; simply DB_S_ENDOFROWSET and 0 rows returned, which makes failure detection for my application extremely difficult.
I switched the cursor to be server-based and there was a noticeable improvement in reliability, but still not perfect. For this reason, I'm assuming that some cursor models in OraOLEDB are more reliable than others across unreliable networks (correct me if I'm wrong).
Thanks for any info.
KenWindows 7 is now released but still no sign of a TWAIN / WIA driver to support network scanning for my device (a PhotoSmart 2710). Just had a webchat with a HP support person who said that the drivers are being developed and I should check back in mid November. I seem to recall folk in this forum saying that we would just have to wait. So, I'm still waiting for a clear answer on when these may be delivered (if at all) or am I just being fobbed-off until I give up and go buy another (non-HP) device...
-
Need help with **** Invalid Cursor State ****
Hi,
can someone tell me why am i getting this error....
//******java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid cursor state
Any help is greatly appreciated.....
Thanks in advance.
//***********this is the output on servlet side**************//
Starting service Tomcat-Standalone
Apache Tomcat/4.0.3
Starting service Tomcat-Apache
Apache Tomcat/4.0.3
init
DBServlet init: Start
DataAccessor init: Start
Accessor init: Loading Database Driver: sun.jdbc.odbc.JdbcOdbcDriver
DataAccessor init: Getting a connection to - jdbc:odbc:SCANODBC
username SYSDBA
password masterkey
DataAccessor init: Preparing searchPolicy
DataAccessor init: Prepared policySearch
DataAccessor init: Prepared ssnSearch
DataAccessor init: End
After the myDataAccessor
Database Connection...
in doGet(...)
SSSSSSSGetpolicynumber
In GetPolicyInformation
b05015195
Getting Policy Informaton for = b05015195
okay, building vector for policy
in GetPolicyInformation for = b05015195
starting query... policy Information
finishing query... Policy Information
Inside the while(next) loop
sun.jdbc.odbc.JdbcOdbcResultSet@4db06e
sun.jdbc.odbc.JdbcOdbcResultSet@4db06e
b05015195
policy information constructor with resultset
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid cursor state
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6031)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:6188)
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3266)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:
5398)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:326)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:383)
at viewscreenappletservlet.policyinformation.<init>(policyinformation.ja
va:56)
at viewscreenappletservlet.DatabaseAccessor.getPolicyInformation(Databas
eAccessor.java:145)
at viewscreenappletservlet.Servlet.policyDisplay(Servlet.java:108)
at viewscreenappletservlet.Servlet.doGet(Servlet.java:91)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServl
et.java:446)
at org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java
:180)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:193)
at filters.ExampleFilter.doFilter(ExampleFilter.java:149)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:213)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:193)
at filters.ExampleFilter.doFilter(ExampleFilter.java:149)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:213)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
torBase.java:475)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:
2343)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatche
rValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
468)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcesso
r.java:1012)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.ja
va:1107)
at java.lang.Thread.run(Thread.java:484)
result set closed
1
sending response
Sending policy vector to applet...
Data transmission complete.1) JDBC-ODBC driver is buggy
2) Some drivers (truly speaking most of them) doesn't
support cursors or supports them in a wrong way
Paul -
Hi everyone...
Is there some support for cursors in jpa? I guess there is, how can I scroll through a list of 1000 of records?There is no built in support for cursored results coming back. The first/max result can be used to handle limiting results and paging of entities.
Doug -
SQL Parser supporting nested queries
Hi,
I require a SQL parser that supprt nested queries. JavaCC doesnt support nested queries so that one is out. If anyone knows of any open sourse parser, please enlighten me. I have already looked enough on Google but not of much use.
thanks,
abulkd| 1. as suggested , i was able to get the oraclexmlsql.jar
| from the servlet zip and loading it solved the problem of
| the jdbc string being printed int he cursor syntax . it
| works from the xmlgen utility withing pl/sql. but when
| using OracleXML in a java prog the results still printout
| the jdbc string.. any ideas...
Could only be a CLASSPATH problem difference in your two
tests.
| 2. Is there anyway to supress the rownum attribute tag in
| the subquery (cursor) results...that is the
| setRowIdAttrName .... w/o using xslt
Not at this time. Rownum supression on the subquery should
probably follow your settings on the main query. I'll
suggest to the devs.
| 3. We are implementing a solution using these tools.... we
| wanted to know which were the production versions.
XDK Components for XML and XSLT are production.
XML SQL Utility and XSQL Servlet are still Technical
Previews and as such are not yet production.
null -
Moved this post from the SQL PL/SQL forum. Apologies if you had to read this twice..
All,
I have a rather general question about oracle support for sensitive cursors, I need to establish a scrollable result set and "see" changes to the selected data, updated by a different process. There is some mention of oracle support for scrollable cursors that are sensitive, implemented in the JDBC driver.
Is there something similar that I could use to enhance my OPEN cursor implementation in OCI.
thanks in advance,
badriA scrollable cursor provides support for forward and backward access into the result set from a given position, using either absolute or relative row number offsets into the result set.
You can use scrollable cursor to see updated data if client side Caching is not used.
Oracle does not support DML operations on scrollable cursors. A cursor cannot be made scrollable if the LONG datatype is part of the select list.
Moreover, fetches from a scrollable statement handle are based on the snapshot at execution time. OCI client prefetching works with OCI scrollable cursors. The size of the client prefetch cache can be controlled by the existing OCI attributes OCI_ATTR_PREFETCH_ROWS and OCI_ATTR_PREFETCH_MEMORY.
Example of Access on a Scrollable Cursor
Assume that a result set is returned by the SQL query:
SELECT empno, ename FROM emp
and that the table EMP has 14 rows. One use of scrollable cursors is:
/* execute the scrollable cursor in the scrollable mode */
OCIStmtExecute(svchp, stmthp, errhp, (ub4)0, (ub4)0, (CONST OCISnapshot *)NULL,
(OCISnapshot *) NULL, OCI_STMT_SCROLLABLE_READONLY );
/* Fetches rows with absolute row numbers 6, 7, 8. After this call,
OCI_ATTR_CURRENT_POSITION = 8, OCI_ATTR_ROW_COUNT = 8 */
checkprint(errhp, OCIStmtFetch2(stmthp, errhp, (ub4) 3,
OCI_FETCH_ABSOLUTE, (sb4) 6, OCI_DEFAULT);
/* Fetches rows with absolute row numbers 6, 7, 8. After this call,
OCI_ATTR_CURRENT_POSITION = 8, OCI_ATTR_ROW_COUNT = 8 */
checkprint(errhp, OCIStmtFetch2(stmthp, errhp, (ub4) 3,
OCI_FETCH_RELATIVE, (sb4) -2, OCI_DEFAULT);
/* Fetches rows with absolute row numbers 14. After this call,
OCI_ATTR_CURRENT_POSITION = 14, OCI_ATTR_ROW_COUNT = 14 */
checkprint(errhp, OCIStmtFetch2(stmthp, errhp, (ub4) 1,
OCI_FETCH_LAST, (sb4) 0, OCI_DEFAULT);
/* Fetches rows with absolute row number 1. After this call,
OCI_ATTR_CURRENT_POSITION = 1, OCI_ATTR_ROW_COUNT = 14 */
checkprint(errhp, OCIStmtFetch2(stmthp, errhp, (ub4) 1,
OCI_FETCH_FIRST, (sb4) 0, OCI_DEFAULT);
/* Fetches rows with absolute row numbers 2, 3, 4. After this call,
OCI_ATTR_CURRENT_POSITION = 4, OCI_ATTR_ROW_COUNT = 14 */
checkprint(errhp, OCIStmtFetch2(stmthp, errhp, (ub4) 3,
OCI_FETCH_NEXT, (sb4) 0, OCI_DEFAULT);
/* Fetches rows with absolute row numbers 3,4,5,6,7. After this call,
OCI_ATTR_CURRENT_POSITION = 7, OCI_ATTR_ROW_COUNT = 14. It is assumed
the user's define memory is allocated. */
checkprint(errhp, OCIStmtFetch2(stmthp, errhp, (ub4) 5,
OCI_FETCH_PRIOR, (sb4) 0, OCI_DEFAULT);
checkprint (errhp, status)
ub4 rows_fetched;
/* This checks for any OCI errors before printing the results of the fetch call
in the define buffers */
checkerr (errhp, status);
checkerr(errhp, OCIAttrGet((CONST void *) stmthp, OCI_HTYPE_STMT,
(void *) &rows_fetched, (uint *) 0, OCI_ATTR_ROWS_FETCHED, errhp));
...
Maybe you are looking for
-
I've tried everything and still my Firefox says it's still running.
I've tried restarting my computer, deleting Firefox and re installing, deleting the parent lock file, and it still wont open. I would love to have my Firefox back :(
-
In-App purchase problem, help?
I am trying to make an in-app purchase with an itunes gift card. it won't let me make the purchase because my credit card info is 'invalid' and I don't understand why it won't work. Can someone help me out?
-
Selecting solid colors with Eyedropper
Where is the option to have the Eyedropper only select solid colors and not multiple colors when sampling colors? I select the Eyedropper tool and do not see any options for this in the control panel. I only have options for Sample Size, which layers
-
Hi guys. I set up a wds last week (my extreme is the "head" and the express is the addon). I added the express to give my self a larger range. Unfortunately, I often get the same results as I did with just one station (one bar). I'm trying to find ou
-
Hi Gurus, I need to know how the pricing needs to be set for merchandising and how the same is getting flown to Retailing. Thanks Deepak