I am trying to create an anonymous block that will invoke both the packaged procedure and function in the package to test, using basket id 12.
Package
CREATE OR REPLACE PACKAGE order_info_pkg IS
FUNCTION C
(p_basket IN NUMBER)
RETURN VARCHAR2;
PROCEDURE basket_info_pp
(p_basket IN NUMBER,
p_shop OUT NUMBER,
p_date OUT DATE);
END;
/
CREATE OR REPLACE PACKAGE BODY order_info_pkg IS
FUNCTION SHIP_NAME_PF
(p_basket IN NUMBER)
RETURN VARCHAR2
IS
lv_name_txt VARCHAR2(25);
BEGIN
SELECT shipfirstname||' '||shiplastname
INTO lv_name_txt
FROM bb_basket
WHERE idBasket = p_basket;
RETURN lv_name_txt;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Invalid basket id');
END ship_name_pf;
PROCEDURE basket_info_pp
(p_basket IN NUMBER,
p_shop OUT NUMBER,
p_date OUT DATE)
IS
BEGIN
SELECT idshopper, dtordered
INTO p_shop, p_date
FROM bb_basket
WHERE idbasket = p_basket;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Invalid basket id');
END basket_info_pp;
END;
/
Anonymous black:
VARIABLE G_IDSHOPPER NUMBER;
VARIABLE G_DATE VARCHAR2(20);
DECLARE
LV_TEXT VARCHAR2(50);
LV_IDSHOPPER NUMBER;
LV_DATE DATE;
BEGIN
LV_TEXT := ORDER_INFO_PKG.BASKET_INFO_PP(12, LV_IDSHOPPER, LV_DATE);
DBMS_OUTPUT.PUT_LINE(LV_TEXT);
End;
/
Getting:
ERROR at line 6:
ORA-06550: line 6, column 14:
PLS-00201: identifier 'BASKET_INFO_PP' must be declared
ORA-06550: line 6, column 3:
PL/SQL: Statement ignored
Can anyone assist?
I have also tried this statement to test and could not get it even close to working.
VARIABLE G_SHOP NUMBER;
VARIABLE G_DATE DATE;
VARIABLE G_NAME VARCHAR2(30);
DECLARE
LV_ORDERNAME VARCHAR2(30);
BEGIN
SELECT TO_CHAR(DTORDERED)
INTO :G_DATE
FROM BB_BASKET
WHERE IDBASKET = P_BASKET;
SELECT ORDER_INFO_PKG.BASKET_INFO_PP(12, :G_SHOP, :G_DATE)
INTO LV_ORDERNAME
FROM BB_BASKET
WHERE IDBASKET = P_BASKET;
DBMS_OUTPUT.PUT_LINE(LV_ORDERNAME, :G_SHOP, :G_DATE);
END;
/
ERROR at line 7:
ORA-06550: line 7, column 22:
PL/SQL: ORA-00904: "P_BASKET": invalid identifier
ORA-06550: line 4, column 1:
PL/SQL: SQL Statement ignored
ORA-06550: line 8, column 23:
PL/SQL: ORA-00904: : invalid identifier
ORA-06550: line 8, column 1:
PL/SQL: SQL Statement ignored
ORA-06550: line 12, column 1:
PLS-00306: wrong number or types of arguments in call to 'PUT_LINE'
ORA-06550: line 12, column 1:
PL/SQL: Statement ignored
Edited by: user13842802 on Aug 6, 2012 5:53 PM