aris_datuin
asked on
External Table creation inside PLSQL Package error...
Hi Experts..
I am trying to create an External Table inside PLSQL Package but an error "Insufficient Priviledges" occurs...
DECLARE
issuccess BOOLEAN;
BEGIN
-- Now call the stored program
my_package.proc_load_file( 'INCOMING' ,'SA202_PP D_WARRANTY _20041010_ 09101010.t xt',issucc ess);
-- Output the results
IF issuccess THEN
dbms_output.put_line('issu ccess = TRUE');
ELSE
dbms_output.put_line('issu ccess = FALSE');
END IF;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line(SubSt r('Error '||TO_CHAR(SQLCODE)||': '||SQLERRM, 1, 255));
RAISE;
END;
Here is my Package...
PACKAGE BODY MY_PACKAGE AS
PROCEDURE PROC_LOAD_FILE (
varFileDirectory IN VARCHAR2
, varFile IN VARCHAR2
, isSuccess OUT BOOLEAN)
IS
varTransposedPhoneNumber VARCHAR2(30) := '';
varMobileNumber VARCHAR2(30) := '';
varSourceTransactionDate VARCHAR2(15) := '';
varTransactionIdentifier VARCHAR2(30) := '';
varDelimiter VARCHAR2(1) := ',';
varSQL VARCHAR2(1000);
BEGIN
BEGIN
varSQL :=
'CREATE TABLE PREPAID_WARRANTY_EXT_TBL
(
TRANSPOSED_PHONE_NUMBER VARCHAR2(30),
MOBILE_NUMBER VARCHAR2(30),
SOURCE_TRANSACTION_DATE VARCHAR2(15),
TRANSACTION_IDENTIFIER VARCHAR2(30)
)
ORGANIZATION EXTERNAL
(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY ' || varFileDirectory || '
ACCESS PARAMETERS
(
FIELDS TERMINATED BY ' || '''' || varDelimiter || '''' || '
)
LOCATION (' || '''' || varFile || '''' || ')
)';
--DBMS_OUTPUT.PUT_LINE('va rSQL is [' || varSQL || ']');
EXECUTE IMMEDIATE(varSQL);
COMMIT;
DBMS_OUTPUT.PUT_LINE('succ essfull create table');
--EXCEPTION
--WHEN OTHERS THEN
--DBMS_OUTPUT.PUT_LINE('ot her exceptions create table');
END;
END PROC_LOAD_FILE;
END MY_PACKAGE;
however, if I am to create an External Table outside of PLSQL Package, it is successfull...
CREATE TABLE PREPAID_WARRANTY_EXT_TBL
(
TRANSPOSED_PHONE_NUMBER VARCHAR2(30),
MOBILE_NUMBER VARCHAR2(30),
SOURCE_TRANSACTION_DATE VARCHAR2(15),
TRANSACTION_IDENTIFIER VARCHAR2(30)
)
ORGANIZATION EXTERNAL
(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY INCOMING
ACCESS PARAMETERS
(
FIELDS TERMINATED BY ','
)
LOCATION ('SA202_PPD_WARRANTY_20041 010_091010 10.txt')
);
May I ask what do I need to set or configure with regards to priviledges...?
Thanks in advanced experts... =)
I am trying to create an External Table inside PLSQL Package but an error "Insufficient Priviledges" occurs...
DECLARE
issuccess BOOLEAN;
BEGIN
-- Now call the stored program
my_package.proc_load_file(
-- Output the results
IF issuccess THEN
dbms_output.put_line('issu
ELSE
dbms_output.put_line('issu
END IF;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line(SubSt
RAISE;
END;
Here is my Package...
PACKAGE BODY MY_PACKAGE AS
PROCEDURE PROC_LOAD_FILE (
varFileDirectory IN VARCHAR2
, varFile IN VARCHAR2
, isSuccess OUT BOOLEAN)
IS
varTransposedPhoneNumber VARCHAR2(30) := '';
varMobileNumber VARCHAR2(30) := '';
varSourceTransactionDate VARCHAR2(15) := '';
varTransactionIdentifier VARCHAR2(30) := '';
varDelimiter VARCHAR2(1) := ',';
varSQL VARCHAR2(1000);
BEGIN
BEGIN
varSQL :=
'CREATE TABLE PREPAID_WARRANTY_EXT_TBL
(
TRANSPOSED_PHONE_NUMBER VARCHAR2(30),
MOBILE_NUMBER VARCHAR2(30),
SOURCE_TRANSACTION_DATE VARCHAR2(15),
TRANSACTION_IDENTIFIER VARCHAR2(30)
)
ORGANIZATION EXTERNAL
(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY ' || varFileDirectory || '
ACCESS PARAMETERS
(
FIELDS TERMINATED BY ' || '''' || varDelimiter || '''' || '
)
LOCATION (' || '''' || varFile || '''' || ')
)';
--DBMS_OUTPUT.PUT_LINE('va
EXECUTE IMMEDIATE(varSQL);
COMMIT;
DBMS_OUTPUT.PUT_LINE('succ
--EXCEPTION
--WHEN OTHERS THEN
--DBMS_OUTPUT.PUT_LINE('ot
END;
END PROC_LOAD_FILE;
END MY_PACKAGE;
however, if I am to create an External Table outside of PLSQL Package, it is successfull...
CREATE TABLE PREPAID_WARRANTY_EXT_TBL
(
TRANSPOSED_PHONE_NUMBER VARCHAR2(30),
MOBILE_NUMBER VARCHAR2(30),
SOURCE_TRANSACTION_DATE VARCHAR2(15),
TRANSACTION_IDENTIFIER VARCHAR2(30)
)
ORGANIZATION EXTERNAL
(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY INCOMING
ACCESS PARAMETERS
(
FIELDS TERMINATED BY ','
)
LOCATION ('SA202_PPD_WARRANTY_20041
);
May I ask what do I need to set or configure with regards to priviledges...?
Thanks in advanced experts... =)
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Have a look at http://www.samoratech.com/PLSQL/TipPlsqlAuthid.htm
ASKER
I would just like to ask, what does AUTHID CURRENT_USER is for...?
Thanks again experts... =)