kotamraju
asked on
Help Urget in Pro*c
Hi,
CREATE OR REPLACE PACKAGE SPK_GET_CONTR_TABLE AS
TYPE CONTR_TABLE IS TABLE OF VARCHAR2(50);
PROCEDURE PROC_GET_CONTR_TABLE (OUT_TABLE OUT CONTR_TABLE);
END;
/
show error;
/
CREATE OR REPLACE PACKAGE BODY SPK_GET_CONTR_TABLE AS
PROCEDURE PROC_GET_CONTR_TABLE (OUT_TABLE OUT CONTR_TABLE) IS
I NUMBER(10);
CURSOR GET_TPA
IS
SELECT
SERVICE_CONTRACT_NO||' ' ||
S_C_LINE_ITEM_NO
FROM SV.SVC_CONTR_CVRG_CA
WHERE ROWNUM < 5;
BEGIN
I := 1;
OPEN GET_TPA;
WHILE I < 4 LOOP
FETCH GET_TPA
INTO OUT_TABLE(I);
I := I+1;
END LOOP;
CLOSE GET_TPA;
END;
END;
/
show error;
/
Above is the package procedure I had compiled. Now I want to call tha above procedure from a pro*c program.
I'm trying to call like this
#include <stdio.h>
#include <sqlca.h>
main()
{
char SDATE[20];
EXEC SQL DECLARE tempBuffer TYPE AS OBJECT (bUFFER VARCHAR2(50));
EXEC SQL DECLARE tempBuffer1 TABLE OF tempBuffer;
ConnectToOracle();
EXEC SQL SELECT SYSDATE INTO SDATE FROM DUAL;
printf("SYSDATE = %s" , SDATE);
EXEC SQL EXECUTE
BEGIN
SV.SPK_GET_CONTR_TABLE.PRO C_GET_CONT R_TABLE(te mpBuffer1. bUFFER);
END;
END-EXEC;
printf("SQLCODE = %d" , SQLCA.SQLCODE);
}
I'm not very sure how to pass the parameter to the procedure.
Thanks,
Kotamraju
CREATE OR REPLACE PACKAGE SPK_GET_CONTR_TABLE AS
TYPE CONTR_TABLE IS TABLE OF VARCHAR2(50);
PROCEDURE PROC_GET_CONTR_TABLE (OUT_TABLE OUT CONTR_TABLE);
END;
/
show error;
/
CREATE OR REPLACE PACKAGE BODY SPK_GET_CONTR_TABLE AS
PROCEDURE PROC_GET_CONTR_TABLE (OUT_TABLE OUT CONTR_TABLE) IS
I NUMBER(10);
CURSOR GET_TPA
IS
SELECT
SERVICE_CONTRACT_NO||' ' ||
S_C_LINE_ITEM_NO
FROM SV.SVC_CONTR_CVRG_CA
WHERE ROWNUM < 5;
BEGIN
I := 1;
OPEN GET_TPA;
WHILE I < 4 LOOP
FETCH GET_TPA
INTO OUT_TABLE(I);
I := I+1;
END LOOP;
CLOSE GET_TPA;
END;
END;
/
show error;
/
Above is the package procedure I had compiled. Now I want to call tha above procedure from a pro*c program.
I'm trying to call like this
#include <stdio.h>
#include <sqlca.h>
main()
{
char SDATE[20];
EXEC SQL DECLARE tempBuffer TYPE AS OBJECT (bUFFER VARCHAR2(50));
EXEC SQL DECLARE tempBuffer1 TABLE OF tempBuffer;
ConnectToOracle();
EXEC SQL SELECT SYSDATE INTO SDATE FROM DUAL;
printf("SYSDATE = %s" , SDATE);
EXEC SQL EXECUTE
BEGIN
SV.SPK_GET_CONTR_TABLE.PRO
END;
END-EXEC;
printf("SQLCODE = %d" , SQLCA.SQLCODE);
}
I'm not very sure how to pass the parameter to the procedure.
Thanks,
Kotamraju
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.