add
remove
split
language
chart
show hidden
hide
db<>fiddle
Db2
DocumentDB
DuckDB
Firebird
MariaDB
MySQL
Oracle
Postgres
SQL Server
SQLite
TimescaleDB
YugabyteDB
11.1
11.5
12.1
0.114 (MongoDB 7.0)
0.116 (MongoDB 7.0)
1.4 LTS
3.0
4.0
5.0
10.2
10.3
10.4
10.5
10.6
10.7
10.8
10.9
10.11
11.4
11.8
12.3
5.5
5.6
5.7
8.0
8.4
9.7
11g Release 2
18c
21c
23ai
23c
26ai
8.4
9.3
9.4
9.5
9.6
10
11
12
13
14
15
16
17
18
19 beta 3
2012
2014
2016
2017
2017 (Linux)
2019
2019 (Linux)
2022
2025
3.8
3.16
3.27
3.39
3.45
3.53
2.11
2.14
2.28
2.6
2.8
2.18
2024.2 LTS
2025.2 LTS
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
Sakila
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
AdventureWorks
no sample DB
no sample DB
AdventureWorks
no sample DB
AdventureWorks
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
run
abort
markdown
clear
donate
feedback
about
By using db<>fiddle, you agree to license everything you submit by
Creative Commons CC0
.
/* Main table - it contains the data to use in a cursor: */ CREATE TABLE tpos_retbenf ( id_serial NUMBER (9,0), serial_nmb NUMBER(12,0) );
/* Destination of the records detected on "tpos_retbenf": */ CREATE TABLE tbl_debug ( msg_text VARCHAR2(1000), record_date DATE );
/* Add values to the main table: */ INSERT INTO tpos_retbenf (id_serial, serial_nmb) VALUES (1, 202108311635);
1 rows affected
/* Package that contains the code to execute: */ create or replace PACKAGE PCK_POS_UNO is PROCEDURE SP_POS_UNO (ID_RECORD IN NUMBER, CUR_RET_BENF OUT SYS_REFCURSOR, IDERROR OUT NUMBER, DSERROR OUT VARCHAR2); end PCK_POS_UNO; /
create or replace PACKAGE BODY PCK_POS_UNO is /* This is the procedure that returns results in separated variables: */ PROCEDURE SP_POS_UNO (ID_RECORD IN NUMBER, CUR_RET_BENF OUT SYS_REFCURSOR, IDERROR OUT NUMBER, DSERROR OUT VARCHAR2) AS v_temp number(6) := 0; v_S varchar2(1) := 'S'; BEGIN if ID_RECORD is null or ID_RECORD <= 0 then IDERROR := -1; DSERROR := 'Id no valido para la operacion'; goto finalizar; end if; select count(1) into v_temp from tpos_retbenf r where r.id_serial = ID_RECORD; if v_temp = 0 then IDERROR := -1; DSERROR := 'Id no encontrado'; goto finalizar; end if; OPEN CUR_RET_BENF FOR select r.id_serial, r.serial_nmb from tpos_retbenf r where r.id_serial = ID_RECORD; <<finalizar>> null; END SP_POS_UNO; END PCK_POS_UNO; /
/* Package that calls the "SP_POS_UNO" procedure from the "PCK_POS_UNO" package: */ create or replace PACKAGE PKG_BH_ONLINE_INFORMATION IS PROCEDURE ONLINENOVELTYBEN ( V_NID_DEV IN NUMBER, CV_1 IN OUT SYS_REFCURSOR ); END PKG_BH_ONLINE_INFORMATION; /
create or replace PACKAGE BODY PKG_BH_ONLINE_INFORMATION IS PROCEDURE ONLINENOVELTYBEN ( V_NID_DEV IN NUMBER, CV_1 IN OUT SYS_REFCURSOR ) IS V_USER VARCHAR2(10 CHAR) := 'INTERNET'; V_QUERY VARCHAR2(10000 CHAR); -- Variables: V_OUT_CUR_RET_BENF SYS_REFCURSOR; V_OUT_IDERROR NUMBER; V_OUT_DSERROR VARCHAR2(10000 CHAR); BEGIN /* Here, the "PCK_POS_UNO.SP_POS_UNO" is called from "PKG_BH_ONLINE_INFORMATION" as follows: */ V_QUERY := 'SELECT APPLICATION_POS.PCK_POS_UNO.SP_POS_UNO(:V_NID_DEV, :V_OUT_CUR_RET_BENF, :V_OUT_IDERROR, :V_OUT_DSERROR) FROM DUAL'; EXECUTE IMMEDIATE V_QUERY INTO V_OUT_CUR_RET_BENF, V_OUT_IDERROR, V_OUT_DSERROR USING V_NID_DEV, V_OUT_CUR_RET_BENF, V_OUT_IDERROR, V_OUT_DSERROR ; /* An this error occurs: Error: ORA-00904: "PCK_POS_UNO"."SP_POS_UNO": invalid identifier - StackTrace: ORA-06512: in line 24 */ -- After getting the results in (V_OUT_CUR_RET_BENF, V_OUT_IDERROR, V_OUT_DSERROR) variables, -- a LOOP is executed for retrieve the records in "V_OUT_CUR_RET_BENF" cursor... -- It doesn't continue here due to error shown above. END ONLINENOVELTYBEN; END PKG_BH_ONLINE_INFORMATION; /