PLS-00201 ERROR
Hi to all,
I have tried to create this procedure:
CREATE OR REPLACE PROCEDURE VERIFY_CREDENTIALS
pUSERNAME IN VARCHAR2,
pPASSWORD in VARCHAR2
IS
lCounter number;
lPassword varchar(255) DEFAULT GET_HASHED_PW( pPASSWORD);
BEGIN
SELECT COUNT(*) INTO lCounter
FROM WEBUSERS
WHERE USERNAME = pUSERNAME
AND ENCRYPTEDPWD = lPassword;
IF ( lCounter = 0 ) THEN
RAISE_APPLICATION_ERROR( -20001, 'invalid USERNAME/password' );
END IF;
END;When I compile, the error
PLS-00201 - The identifier GET_HASHED_PW must be declared
is displayed.
How can resolve this problem ? Can You help me ?
The DB Version is 10.2.0.1.0 under Windows 2003 Server
Thank You and Best Regards
Gaetano
Solved,
The GET_HASHED_PW is declared in a Package.
I have added the name of package to the function and all work.
Thank You.
Gaetano
Similar Messages
-
PLS-00201 error calling function in package member
Hello,
I'm trying to call a function defined in a PL/SQL package, but receiving a PLS-00201 error.Sorry, a finger-controller error caused me to submit before I was ready. I'm having the module replaced today. :)
After rethinking my decision to post here, I decided not to. I've never received a helpful answer, probably because the issues are not simple... Too bad. -
ORA-06550/PLS-00201 error while configuring data source
Hi,
My development platform is Visual Studio 2005, ODAC11g Release 1 (11.1.0.6.20), and Oracle 10g Release 2 database.
I tried to setup a sqlDatasource in my web page using drag and drop features
When I configure the sqlDatasource to use a stored procedure inside a package,
I notice that odp.net uses #0# as separator (instead of .) between package name and procedure name in Configure Data Source dialog box. Then when I clcik the Test Query button, I got following error.
There was an error executing the query. Please check the syntax of the command and if present, the types and values of the parameters and ensure they are correct.
ORA-06550: line 1, column 7:
PLS-00201: identifier 'PK_LOOKUP_TABLE#0#P_LIST' must be declared
ORA-06550: line 1, column 7
PL/SQL: Statement ignored
It looks like odp.net cannot locate PK_LOOKUP_TABLE#0#P_LIST.
Is there any workaround ?
Below is the stored procedure code. It compiles and runs without problem.
PACKAGE BODY pk_lookup_table
AS
/* Get a list of lookup table name */
PROCEDURE P_LIST (
O_CURSOR OUT sys_refcursor )
IS
l_cur sys_refcursor;
BEGIN -- executable part starts here
OPEN l_cur FOR
SELECT table_name
FROM all_tab_comments u
WHERE u.comments LIKE '%Lookup Table%'
ORDER BY 1;
o_cursor := l_cur;
END P_LIST;
END "PK_LOOKUP_TABLE";
On the sqlDataSource property sheet, if I click the Select Query property, the Command and Parameter Editor will open, then I can change the select command name to PK_LOOKUP_TABLE.P_LIST. Then if I run the application, I get another error.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: Oracle.DataAccess.Client.OracleException: ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'P_LIST'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Seems that it can locate the procedure.
In the Command and Parameter Editor dialog, I can add output parameter, but data type is restricted. There is no REF CURSOR datatype in the dropdown list.
How can I add output parameter with REF CURSOR type via IDE ?
Thanks for the time looking into this issue.
MansionHi
Even I faced this problem while connecting to RMAN . But I feel your problem is different .
My issue was like this
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00554: initialization of internal recovery manager package failed
RMAN-04005: error from target database:
ORA-06550: line 1, column 7:
PLS-00201: identifier 'DBMS_BACKUP_RESTORE.SET_CHARSET' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
RMAN-04015: error setting target database character set to WE8MSWIN1252
Solution :
execute catproc.sql; -
PLS-00201 error when trying to pass an OUT parameter
Hi,
Please help me to resolve the below error:
I am trying to pass an OUT parameter in a package.
I have declared it in package specs as
ProcABC(p_val IN varchar2, p_val2 IN varchar2, p_val3 OUT varchar2)
In package body
I have created the procedure as
Create or Replace procedure ProcABC(p_val IN varchar2, p_val2 IN varchar2, p_val3 OUT varchar2) AS
v_LogDir varchar2(40);
v_message varchar2(200);
BEGIN
SELECT directory_path into v_LogDir FROM ALL_DIRECTORIES WHERE directory_name = 'ABC';
v_message := v_LogDir ;
some sql statements..
p_val3 := v_message;
Return p_val3;
End procABC;
SQL> exec pkg_A.procABC('Stage2', NULL, p_val3);
Package compiles successfully but while execution it returns error as:
ORA-06550: line 1, column 74:
PLS-00201: identifier 'p_val3 ' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Please advise.Hi Suresh,
Thanks for the information and help. I was able to run the package with this usage.
Now, the issue is
I need to return a v long string by the OUT parameter so I defined the datatype of OUT parameter as CLOB.
But, when I declare local variable to run the package with this OUT paramater I get the error :
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at line 1
When I pass a shorter string it works.
Kindly advise me how to resolve this issue while using CLOB as datatype of OUT parameter. -
PLS-00201 error occurs when batching a stored procedure in SQL*Plus
I have a batch file to run a stored procedure and spool the results to file. When I enter the commands manually in sql*plus the output works fine and my results are spooled to the output file. But when I run the same commands in the batched script I get an error.
Any ideas?
Stored Procedure:
create or replace procedure MMP( p_cursor in out SYS_REFCURSOR)
as
begin
open p_cursorfor select name, id from table;
end;
batch file 1:
sqlplus -S user/pw@REPORTDV @sp_output_spooled.sql
script file sp_output_spooled.sql
Pasting these commands directly to the SQL*Plus command prompt spools the result set to file as expected.
set colsep '|'
set echo off
set feedback off
set termout off
set heading off
set linesize 9000
set pagesize 0
set trimspool on
set headsep off
spool output.TXT
var rc refcursor
execute MMP(:rc)
print rc
spool off
exit
The errors printed to output.TXT file after the batch is run and error occurs:
BEGIN MMP(:rc); END;
ERROR at line 1:
ORA-06550: line 1, column 8:
PLS-00201: identifier 'MMP' must be declared
ORA-06550: line 1, column 8:
PL/SQL: Statement ignored
ERROR:
ORA-24338: statement handle not executed
SP2-0625: Error printing variable "rc"Hi,
Your code worked fine for me.
Is MMP procedure owned by the same user that is running the batch file or does it have proper privileges and synonym?
vr,
Sudhakar -
PLS-00201 ERROR - XML. and XPATH. Calls
I'm getting the below errors. I've loaded javavm and inixml.
Does anyone have any suggestion on compiling the vendor code.
Thanks. Corey
SQL> show errors
Errors for PACKAGE BODY INTR_ITIN_PKG:
LINE/COL ERROR
334/3 PL/SQL: Statement ignored
334/13 PLS-00201: identifier 'XML.PARSE' must be declared
341/3 PL/SQL: Statement ignored
341/21 PLS-00201: identifier 'XPATH.SELECTNODES' must be declared
353/5 PL/SQL: Statement ignored
353/22 PLS-00201: identifier 'XPATH.SELECTNODES' must be declared
363/5 PL/SQL: Statement ignored
363/21 PLS-00201: identifier 'XPATH.SELECTNODES' must be declared
480/3 PLS-00201: identifier 'XML.FREEDOCUMENT' must be declared
480/3 PL/SQL: Statement ignored
498/11 PL/SQL: Statement ignored
LINE/COL ERROR
498/29 PLS-00201: identifier 'XPATH.SELECTNODES' must be declared
509/11 PLS-00201: identifier 'XML.FREEDOCUMENT' must be declared
509/11 PL/SQL: Statement ignored
685/3 PL/SQL: Statement ignored
685/17 PLS-00201: identifier 'XPATH.SELECTNODES' must be declared
707/3 PL/SQL: Statement ignored
707/17 PLS-00201: identifier 'XPATH.SELECTNODES' must be declared
753/3 PL/SQL: Statement ignored
753/17 PLS-00201: identifier 'XPATH.SELECTNODES' must be declared
SQL>I had a package which worked under 8i, part of the package body like
Create or Replace Package Body AbleTool as
Function Transform(xml Clob,xsl Clob) Return Clob is
p xmlparser.Parser;
xmldoc xmldom.DOMDocument;
xsldoc xmldom.DOMDocument;
proc xslprocessor.Processor;
ss xslprocessor.Stylesheet;
cl Clob;
begin
p := xmlparser.newParser;
xmlparser.setValidationMode(p, FALSE);
xmlparser.setPreserveWhiteSpace(p, TRUE);
xmlparser.parseClob(p, xml); -- parse xml
xmldoc := xmlparser.getDocument(p);
xmlparser.parseClob(p, xsl); -- parse xsl
xsldoc := xmlparser.getDocument(p);
proc := xslprocessor.newProcessor;
ss := xslprocessor.newStylesheet(xsldoc, '');
dbms_lob.createtemporary(cl, TRUE);
xslprocessor.processXSL(proc, ss, xmldoc,cl);
xslprocessor.freeStyleSheet(ss);
xslprocessor.freeProcessor(proc);
return cl;
when I installed 9i db, and run the package on it. I get errors
like
PLS-00201: identifier 'XMLPARSER' must be declared
PL/SQL: Item ignored
PLS-00201: identifier 'XMLDOM' must be declared
PL/SQL: Item ignored
PLS-00201: identifier 'XMLDOM' must be declared
PL/SQL: Item ignored
PLS-00201: identifier 'XSLPROCESSOR.PROCESSOR' must be declared
PL/SQL: Item ignored
PLS-00201: identifier 'XSLPROCESSOR.STYLESHEET' must be declared
PL/SQL: Item ignored
PLS-00320: the declaration of the type of this expression is incomplete or malformed
PL/SQL: Statement ignored
PLS-00320: the declaration of the type of this expression is incomplete or malformed
PL/SQL: Statement ignored
PLS-00320: the declaration of the type of this expression is incomplete or malformed
PL/SQL: Statement ignored
PLS-00320: the declaration of the type of this expression is incomplete or malformed
PL/SQL: Statement ignored
PLS-00320: the declaration of the type of this expression is incomplete or malformed
PL/SQL: Statement ignored
I searched on the Forum, someone suggests that the following privileges should grant to the user.
execute of xmldom
execute of xmlparser
execute of xslprocessor
so I did as he said, the first two errors about xmldoc and xmlparser gone, the third error is still there, the error message is
PLS-00201: identifier 'XSLPROCESSOR.PROCESSOR' must be declared
PL/SQL: Item ignored
PLS-00201: identifier 'XSLPROCESSOR.STYLESHEET' must be declared
PL/SQL: Item ignored
PLS-00320: the declaration of the type of this expression is incomplete or malformed
PL/SQL: Statement ignored
PLS-00320: the declaration of the type of this expression is incomplete or malformed
PL/SQL: Statement ignored
PLS-00320: the declaration of the type of this expression is incomplete or malformed
PL/SQL: Statement ignored
PLS-00320: the declaration of the type of this expression is incomplete or malformed
PL/SQL: Statement ignored
PLS-00320: the declaration of the type of this expression is incomplete or malformed
PL/SQL: Statement ignored
What else there I should do?
Please help. -
PLS-00201 error when declaring ROWTYPE variable
Hi,
I want to declare the rec_ variable like this:
PROCEDURE Insert___ (
objid_ OUT VARCHAR2,
objversion_ OUT VARCHAR2,
new_ IN OUT VARCHAR2,
attr_ IN OUT VARCHAR2 )
IS
rec_ OBUS.ORDER_TAB%ROWTYPE;
where ORDER_TAB belongs to the OBUS schema, a different schema from where the present procedure is being created.
When compiling, I get the following error:
"PLS-00201: identifier 'OBUS.ORDER_TAB' must be declared"
Why do I get this? Can't I refer to a different schema in the declaration area of the procedure?
Thanks.
Leandro.Thank you both. It compiled ok after granting the select privilege.
However, I was able to execute a "select * from obus.order_tab" from a SQLPlus session, no matter if I had granted or not the SELECT privilege for that table.
It seems the behaviour is different in a SQL session from a declaration in a procedure. Am I right? What could be the reason for this?
Thanks.
Leandro. -
PLS-00201 error after moving a package to a new scheme
hi
I've moved a package to a new schema and all the packages in the original schema that reference the moved package now fail to compile. The moved package has had a public synonym created and the execute privileges assigned to the original schema by role. what am i missing? Using 11gR2 version 11.2.0.3.0Privileges granted through roles do not apply to stored procedures and packages that are compiled with definer rights (the default). You need to grant the original schema execute privileges on the new schema's package directly.
John -
Dear All
I am getting this error while executing a function .
I checked in the dB The table DES_OUT_WR_CR is already exist .
What could be the error ?
LINE/COL ERROR
0/0 PL/SQL: Compilation unit analysis terminated
2/17 PLS-00201: identifier 'DES_OUT_WR_CR' must be declaredThe error is you don't use online resources and ask a FAQ.
Sybrand Bakker
Senior Oracle DBA -
Stored Procedure Call from Bean Error - PLS-00201
Hello all,
I am using the java stored procedure code in the examples dir of weblogic51/examples/jdbc/...
with one exception. I created the stored procedure as another user with more
permissions than
the user that the jdbc connection will be established with. I created a public
synonym so the stored
procedure doesn't have to be refered to as "username.proc_squareInt". I keep
getting the following
errors. The web user has execute permissions and I tried calling it both with
the owner.proc_name
and proc_name (which I know won't work since it won't be able to find it).
Any help would be greatly appreciated.
Sincerely,
Michael Prinsen
Tue Jul 17 13:47:41 MDT 2001:<E> <WebAppServletContext-et> Root cause of ServletException
java.sql.SQLException: ORA-06550: line 1, column 7:
PLS-00201: identifier 'WTHDBM.PROC_SQUAREINT' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:114)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:542)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1330)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:757)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:1313)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1232)
at oracle.jdbc.driver.OracleStatement.doExecuteWithBatch(OracleStatement.java:1353)
at oracle.jdbc.driver.OracleStatement.doExecute(OracleStatement.java:1760)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1807)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:332)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:376)
at weblogic.jdbc.pool.PreparedStatement.execute(PreparedStatement.java:35)
at csu.et.testBean.getWeatherData1(testBean.java:46)
at jsp_servlet._test._tester._jspService(_tester.java:107)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:120)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:138)
at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:915)
at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:879)
at weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContextManager.java:269)
at weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java:365)
at weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:253)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)
// START CODE
package csu.et;
import java.io.*;
import java.sql.*;
import java.util.*;
import java.text.*;
import java.beans.*;
import java.math.*;
import java.util.Date;
import java.util.Locale;
import csu.util.*;
public class testBean {
public String getWeatherData1() throws SQLException {
Connection conn = null;
conn = CSUConnection.getConnection("etSelectConnectionPool");
// Create a stored proc - (CREATED ALREADY)
// Statement stmt1 = conn.createStatement();
// stmt1.execute("CREATE OR REPLACE PROCEDURE proc_squareInt " +
// "(field1 IN OUT INTEGER, " +
// " field2 OUT INTEGER) IS " +
// "BEGIN field2 := field1 * field1; " +
// "field1 := field1 * field1; END proc_squareInt;");
// stmt1.close();
String sql = "{call proc_squareInt(?, ?)}";
CallableStatement cstmt1 = conn.prepareCall(sql);
cstmt1.registerOutParameter(2, java.sql.Types.INTEGER);
for (int i = 0; i < 5; i++) {
cstmt1.setInt(1, i);
cstmt1.execute();
System.out.println(i + " " + cstmt1.getInt(1) + " " + cstmt1.getInt(2));
cstmt1.close();
conn.close();
return("hard-coded stuff");
//END CODE
this is probably an oracle related issue, and has very little to do with
Weblogic transactions.
your easiest way to debug this is to open a SQL/Plus window, log in as user
WTHDBM and try to run the command
"execute proc_squareInt(5,5);"
"execute owner.proc_squareInt(5,5);"
if this doesn't work, consult Oracle technet on how to setup synonyms and
permissions
Filip
~
Namaste - I bow to the divine in you
~
Filip Hanik
Software Architect
[email protected]
www.filip.net
"Michael Prinsen" <[email protected]> wrote in message
news:[email protected]...
>
> Hello all,
>
> I am using the java stored procedure code in the examples dir of
weblogic51/examples/jdbc/...
> with one exception. I created the stored procedure as another user with
more
> permissions than
> the user that the jdbc connection will be established with. I created a
public
> synonym so the stored
> procedure doesn't have to be refered to as "username.proc_squareInt". I
keep
> getting the following
> errors. The web user has execute permissions and I tried calling it both
with
> the owner.proc_name
> and proc_name (which I know won't work since it won't be able to find it).
>
> Any help would be greatly appreciated.
>
> Sincerely,
>
> Michael Prinsen
>
> Tue Jul 17 13:47:41 MDT 2001:<E> <WebAppServletContext-et> Root cause of
ServletException
> java.sql.SQLException: ORA-06550: line 1, column 7:
> PLS-00201: identifier 'WTHDBM.PROC_SQUAREINT' must be declared
> ORA-06550: line 1, column 7:
> PL/SQL: Statement ignored
>
> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:114)
> at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
> at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:542)
> at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1330)
> at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:757)
> at
oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:1313
> at
oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1232)
> at
oracle.jdbc.driver.OracleStatement.doExecuteWithBatch(OracleStatement.java:1
353)
> at oracle.jdbc.driver.OracleStatement.doExecute(OracleStatement.java:1760)
> at
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java
:1807)
> at
oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedState
ment.java:332)
> at
oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.j
ava:376)
> at weblogic.jdbc.pool.PreparedStatement.execute(PreparedStatement.java:35)
> at csu.et.testBean.getWeatherData1(testBean.java:46)
> at jsp_servlet._test._tester._jspService(_tester.java:107)
> at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
> at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:120)
> at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:138)
> at
weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImp
l.java:915)
> at
weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImp
l.java:879)
> at
weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContext
Manager.java:269)
> at
weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java:365)
> at weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:253)
> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)
>
>
>
> // START CODE
>
> package csu.et;
>
> import java.io.*;
> import java.sql.*;
> import java.util.*;
> import java.text.*;
> import java.beans.*;
> import java.math.*;
> import java.util.Date;
> import java.util.Locale;
> import csu.util.*;
>
> public class testBean {
>
> public String getWeatherData1() throws SQLException
>
> Connection conn = null;
> conn = CSUConnection.getConnection("etSelectConnectionPool");
>
> // Create a stored proc - (CREATED ALREADY)
> // Statement stmt1 = conn.createStatement();
> // stmt1.execute("CREATE OR REPLACE PROCEDURE proc_squareInt " +
> // "(field1 IN OUT INTEGER, " +
> // " field2 OUT INTEGER) IS " +
> // "BEGIN field2 := field1 * field1; " +
> // "field1 := field1 * field1; END proc_squareInt;");
> // stmt1.close();
>
> String sql = "{call proc_squareInt(?, ?)}";
> CallableStatement cstmt1 = conn.prepareCall(sql);
>
> cstmt1.registerOutParameter(2, java.sql.Types.INTEGER);
> for (int i = 0; i < 5; i++) {
> cstmt1.setInt(1, i);
> cstmt1.execute();
> System.out.println(i + " " + cstmt1.getInt(1) + " " +
cstmt1.getInt(2));
> }
>
> cstmt1.close();
> conn.close();
> return("hard-coded stuff");
> }
>
> }
>
> file://END CODE
-
Errors: REPAPI 26522 & PLS 00201
Received these errors when trying to test replication.
"REPAPI 26522:plsql rpc refresh context get failed."
"PLS 00201: identifier sys.dbms_snap_repapi must be declared."
Here's what I have done:
I defined snapshot log on master ok.
When I drag/drop master table to "snapshots" folder in Lite
navigator I get the "New snapshot properties" dialog; I give it
a name and set read-only; no conditions are set on second tab
page. I press ok and get the above error dialog.
Thanks for any info.Just an idea...
If you have had typical installation, advanced replication
features don't come as typical. Please check out if you have
installed the Replication manager and a few more utilities (for
file-based replication). -
PLS-00201: identifier... ERROR
Hi,
I'm very new at PL/SQL and creating stored procedures. I'm trying to create a very simple stored procedure that inserts a row into the WFLOW table, but I keep receiving an error that looks like this:
PLS-00201: identifier 'WFLOW' must be declared
However, if I insert directly, it works.
Please see the code used below:
CREATE OR REPLACE PROCEDURE inWflowRules IS
BEGIN
INSERT INTO WFLOW (WFLOW_RULE_I, WFLOW_RULE_T) VALUES (2,'This is the 2nd row.');
END inWflowRules;
Please help.
Thanks,
LukeishaIf the table exists in another schema, it is easier to create a public synonym fro that table, so that other users can see that table without adding the schema name in front of the table.
Try this in sqlplus:
select * from wflow where rownum=1;
Do you get an error?
If not, than you are probably not authorized to use table wflow in a procedure. The owner of the table has to grant you for this table.
grant select, insert, update, delete on wflow to <user>; -
Failed to execute SP with error PLS-00201
I've stored procedure called CAL_TAX which create by schema EMP_DBA, right now I want to grant execute right on this SP to user USER1. I've execute below statement:
CREATE USER USER1 IDENTIFIED BY USER1234;
GRANT CONNECT TO USER1;
GRANT RESOURCE TO USER1;
GRANT CREATE SESSION TO USER1;
GRANT EXECUTE ON EMP_DBA.CAL_TAX TO USER1;
DECLARE
CURSOR C1 IS SELECT TABLE_NAME FROM USER_TABLES;
CMD VARCHAR2(200);
BEGIN
FOR C IN C1 LOOP
CMD:='GRANT SELECT ON ' || C.TABLE_NAME || ' TO USER1';
EXECUTE IMMEDIATE CMD;
END LOOP;
END;
When I connect as USER1 and execute SP CAL_TAX, I received below error messages. Can anyone help me on this ? I've no problem to execute SP if connect as EMP_DBA
BEGIN CAL_TAX; END;
ERROR AT LINE 1:
ORA-06550: LINE 1, COLUMN 7:
PLS-00201: IDENTIFIER 'CAL_TAX' MUST BE DECLARED
ORA-06550:LINE 1, COLUMN 7:
PL/SQL: STATEMENT IGNORED
This is the part of the SP CAL_TAX, could it AUTHID CURRENT_USER caused this problem ?
CREATE OR REPLACE PROCEDURE CAL_TAX
AUTHID CURRENT_USER
ISWhen I connect as USER1 and execute SP CAL_TAX, I received below error messages. Can anyone help me on this ? I've no problem to execute SP if connect as EMP_DBA
BEGIN CAL_TAX; END;
You are connected as USER1 trying to execute a procedure named CAL_TAX.
But USER1 does not own any object named CAL_TAX so you get the exception.
User EMP_DBA owns object CAL_TAX so USER1 has to provide the schema prefix to reference that object
BEGIN
EMP_DBA.CAL_TAX;
END;
If you create a public synonym then USER1 can use the synonym to reference the object. -
PLS-00201: identifier error with grnats to roles
Hi all,
Consider the following: In schema AA I have several tables and packages. All grants (select, insert, update, delete for tables en execute for packages) are set to roles. User BB got the role contaning all those grants. Furthermore, for all objects in schema AA there are public synonyms. Also, user BB got our developer role to create things and a directly granted 'execute any procedure' privilege (forgot why).
If user BB runs the application, no problems, grants take good care. But if user BB creates an object and wants to refer to schama AA objects, eg.
DECLARE
t_var USERAA_TABLE.identifier%TYPE;
BEGIN
END;I get the "PLS-00201: identifier '...' must be declared" error during compilation. Why is this? And, in our 8.1.7 database the above setup compiles without problems.
I sure don't hope I have to grant directly to developers, since I would like to control this using roles instead of maintaining all developers users.
Anyone? What am I missing here?
Regards,
MichielThanks,
The USERAA_TABLE (which is owned by user AA) indeed has a (public) synonym.
If this is true (grant directly for compiling in Pl/Sql), I think this is a horrible step (since this was not the case in Oracle 8.1.7).
Our application is in schema AA, developers first deploy into their own schema, eg. schema BB (say: one package of the application). When you run the application inside schema BB the altered package is used and the rest of the application is used from schema AA, perfectly for testing. When all is to our satisfaction the DBAs deploy into schema BB (I know, the above does not completly apply when packages are fired from within table triggers).
Schema BB now doesn't compile anymore, because all grants are passed via roles and not direclty. Certainly a big drawback if you have a lot of tables and developers.
Does anyone have encountered these problems? -
Problem with DBMS_XDB.SETLISTENERLOCALACCESS (error PLS-00201)
Hello everyone,
I'm new to oracle and I have a problem after my installation.
I install Oracle XE 11.2 on CENTOS 6.
The installation does not seem to be a problem.
Now I'm trying to activate the web interface for my lan with the command EXEC DBMS_XDB.SETLISTENERLOCALACCESS (FALSE);
Unfortunately it does not work. Here is the error:
-bash-4.1$ ./sqlplus / as sysdba
SQL*Plus: Release 11.2.0.2.0 Production on Wed Nov 20 15:40:23 2013
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
SQL> EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
BEGIN DBMS_XDB.SETLISTENERLOCALACCESS(FALSE); END;
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00201: identifier 'DBMS_XDB.SETLISTENERLOCALACCESS' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
SQL>
If someone can help me ... (and sorry for my english).Pretty sure the ...setlistenerlocalaccess call is not needed for the 11g XE version, by default in a 10g XE install remote apex access was disabled "out of the box". There was a change to that behavior in the final (?) 11g installer.
Try a `desc[ribe] dbms_xdb` in sqlplus, that should give a (fairly long) listing of that package, its procedures and functions. What matters for getting the apex web pages working is a few items that relate to the network setup for the host and how the installer gets all that set up in the $ORACLE_HOME/network/admin/listener.ora file.
Also note per the XE docs, Managing Network Connections says to use a SYSTEM connection, not SYSDBA, although for the XE setup on my (windows host) either a sysdba or a system connection both run that exec statement OK for me. Might be a linux vs. windows thing.
A `lsnrctl status` output will show an HTTP presentation endpoint (default port 8080) in the section "Listener endpoints ..." as well as an endpoint to service remote database connection requests on port 1521. If the 8080 endpoint is not showing up, nothing will get the apex working. Nothing.
And if you want to connect to apex from a different (remote) host be sure port 8080 is open in the firewall. That step is a frequent tripping point for lots of folks.
Message was edited by: clcarter
added system connection info from XE docs
Maybe you are looking for
-
REG: Creation of Warehouse product using transaction /SCWM/MAT1
Hi, My requirement is to create Warehouse Products using Transaction /SCWM/MAT1 , I am using BAPI_PRDSRVAPS_SAVEMULTI2 , but I cound't able to process this because I did find Warehouse number in this BAPI, Am I using correct BAPI, if that is the case
-
How to find length of integer elements using message mapping
Hi all, How can I find the number of digits in an element using message mapping XIer
-
Access denied error when not using Administrator Role
Hi, I configured a simple Transaction Iview, calling a CRM transaction but the information is only been displayed when the user has Administrator permisions but when the user has just the Role where the iview is located this error appears: iView : p
-
How do I split the background colour on a canvas?
Hi. I need to produce a text logo with the first half of the canvas background black with white text, and the second half white with black text. Do I split the background or join two individual canvases together ............ or something else?
-
Stored procedure parameter for in condition
Hi, Is it possible to use a parameter for the following where Parameter should have a list of ids separated by commas and contained with in parenthesis.. Select * from table where id in Parameter If so, what should be the type for the Parameter varia