Get Dataset from Stored Procedure in Oracle
2014-09-13 19:01
281 查看
Stored Procedure (SP) can return data through one variable. We need to get dataset some times. Only one way to get the target is return cursor which can
store dataset in SP.
A cursor is a mechanism by which you can assign a name to a “Select statement” and manipulate the information with that SQL statement.
l Following
is an example.
CREATE OR REPLACEPROCEDURE SP_NAME(
, TEST1 OUT sys_refcursor //refers
to a cursor that can be pass cursors from and to a SP
)
AS
v_created VARCHAR2(100);
BEGIN
OPEN TEST1 FOR SELECT
created FROM TABLE_NAME;
LOOP
FETCH TEST1 INTO v_created;
EXIT WHEN TEST1%NOTFOUND;
dbms_output.put_line(v_created);
END LOOP;
CLOSE TEST1;
END SP_TEMPLATE;
/
l Using
the SQL to execute the SP
DECLARE
TEST1 sys_refcursor;
BEGIN
SYSTEM.KTEST (TEST1 );
END;
l Use
the SQL1 to initial a sys_refcursor, also a string can be used to initial a sys_refcursor as SQL2
SQL1:
OPENTEST1 FOR SELECT
created FROM TABLE_NAME;
SQL2:
initialStr VARCHAR2(100);
initialStr := 'SELECT
created
FROM
siebel.s_srv_req';
OPENTEST1 FOR initialStr;
Note: If you want to call the SP with cursor with JAVA, remove the code after LOOP clause.
store dataset in SP.
A cursor is a mechanism by which you can assign a name to a “Select statement” and manipulate the information with that SQL statement.
l Following
is an example.
CREATE OR REPLACEPROCEDURE SP_NAME(
, TEST1 OUT sys_refcursor //refers
to a cursor that can be pass cursors from and to a SP
)
AS
v_created VARCHAR2(100);
BEGIN
OPEN TEST1 FOR SELECT
created FROM TABLE_NAME;
LOOP
FETCH TEST1 INTO v_created;
EXIT WHEN TEST1%NOTFOUND;
dbms_output.put_line(v_created);
END LOOP;
CLOSE TEST1;
END SP_TEMPLATE;
/
l Using
the SQL to execute the SP
DECLARE
TEST1 sys_refcursor;
BEGIN
SYSTEM.KTEST (TEST1 );
END;
l Use
the SQL1 to initial a sys_refcursor, also a string can be used to initial a sys_refcursor as SQL2
SQL1:
OPENTEST1 FOR SELECT
created FROM TABLE_NAME;
SQL2:
initialStr VARCHAR2(100);
initialStr := 'SELECT
created
FROM
siebel.s_srv_req';
OPENTEST1 FOR initialStr;
Note: If you want to call the SP with cursor with JAVA, remove the code after LOOP clause.
相关文章推荐
- Get Resultset from Oracle Stored procedure
- Get resultset from oracle stored procedure
- Oracle procedure return DataSet used in JDBC
- Testing/Running the stored procedure(has OUT params) in Oracle sqldeveloper or sqlplus
- How To Use a DataReader Against an Oracle Stored Procedure in Visual C# .NET
- Java Stored Procedure in Oracle
- [转]How to get return values and output values from a stored procedure with EF Core?
- How to use Oracle 11g ODP.NET UDT in an Oracle Stored Procedure's Where clause
- get date list from data range in Oracle
- Creating a Stored Procedure or Function in an Oracle Database
- How to call an Oracle Stored Procedure that returns one or more REF CURSORS, using ADO from C++ How
- How to get data from Oracle DB in silverlight via WCF ?
- How to use Oracle 11g ODP.NET UDT in an Oracle Stored Procedure's Where clause
- Usage of Cursor in Oracle Procedure
- ABAP- Get email address in HR from employee id.
- Calling a Stored Procedure in a Database
- HOWTO: Retrieve Typical Resultsets From Oracle Stored Procedures
- Returning clob to varchar from a stored procedure
- DNN安装报错-The stored procedure 'dbo.GetPortalAliasByPortalID' doesn't exist.如何解决
- Calling Oracle stored procedures from Microsoft.NET