This is a privilege issue. The stored proc runs with the security of the connected user except for those inherited via roles. Try adding the pragma for current user as follows to see if this is what you want:
CREATE OR REPLACE
procedure LOAD_MGR.nik1_test
authid current_user
as ......
If not, then you will need to grant Select on the objects directly to the account.
HTH.
Tony Aponte
-----Original Message-----
From: H elp_me [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, October 30, 2001 1:25 PM
To: Multiple recipients of list ORACLE-L
Subject: Works interactively but not in procedure
Hi All,
Here is the code.. Please let me know. where i went wrong..
SQL> set serveroutput on
SQL> CREATE OR REPLACE
2 procedure LOAD_MGR.nik1_test
3 as
4 nik_COL1 VARCHAR2(32);
5 nik_COL2 VARCHAR2(32);
6 CURSOR c_col IS
7 -- SELECT owner,table_name FROM all_TABles
8 -- where rownum < 10;
9 SELECT column_name,table_name FROM SYS.ALL_TAB_COLUMNS
10 WHERE table_name = 'SHIP_LOTS';
11 BEGIN
12 open c_col;
13 LOOP
14 fetch c_col into nik_col1,nik_col2;
15 EXIT WHEN c_col%NOTFOUND;
16 dbms_output.put_line ('V_COL : ' || nik_col2 || '.' || nik_col1);
17 END LOOP;
18 close c_col;
19 END;
20 /
Procedure created.
SQL> exec nik1_test
PL/SQL procedure successfully completed.
SQL> SELECT column_name,table_name FROM SYS.ALL_TAB_COLUMNS
2 WHERE table_name = 'SHIP_LOTS';
COLUMN_NAME TABLE_NAME
------------------------------ ------------------------------
QUANTITY SHIP_LOTS
QUANTITY_UOM SHIP_LOTS
MIX_LOT_FLAG SHIP_LOTS
SAP_IM_PLACE SHIP_LOTS
SPSID SHIP_LOTS
LOT_NUM SHIP_LOTS
PARENT_LOT_NUM SHIP_LOTS
7 rows selected.
SQL> declare
2 nik_COL1 VARCHAR2(32);
3 nik_COL2 VARCHAR2(32);
4 CURSOR c_col IS
5 -- SELECT owner,table_name FROM all_TABles
6 -- where rownum < 10;
7 SELECT column_name,table_name FROM SYS.ALL_TAB_COLUMNS
8 WHERE table_name = 'SHIP_LOTS';
9 BEGIN
10 open c_col;
11 LOOP
12 fetch c_col into nik_col1,nik_col2;
13 EXIT WHEN c_col%NOTFOUND;
14 dbms_output.put_line ('V_COL : ' || nik_col2 || '.' || nik_col1);
15 END LOOP;
16 close c_col;
17* END;
SQL> /
V_COL : SHIP_LOTS.QUANTITY
V_COL : SHIP_LOTS.QUANTITY_UOM
V_COL : SHIP_LOTS.MIX_LOT_FLAG
V_COL : SHIP_LOTS.SAP_IM_PLACE
V_COL : SHIP_LOTS.SPSID
V_COL : SHIP_LOTS.LOT_NUM
V_COL : SHIP_LOTS.PARENT_LOT_NUM
PL/SQL procedure successfully completed.
SQL>
NOTE : I tried with ALL_TABLES and that works in procedure too... Only
ALL_TAB_COLUMNS fails.
All these output and execution are from one user, one session, in the
sequence shown above.
Thanks
Nikunj
_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp
--
Please see the official ORACLE-L FAQ: http://www.orafaq.com
--
Author: H elp_me
INET: [EMAIL PROTECTED]
Fat City Network Services -- (858) 538-5051 FAX: (858) 538-5051
San Diego, California -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from). You may
also send the HELP command for other information (like subscribing).