-->
🏠 🔍
SHAREOLITE

SOLVED : DBI DBD ORA-24365: error in character conversion

In one of our Linux based web servers using Oracle 11g database and DBI DBD perl modules , we observed a peculiar error where on accessing a web page , below error was reported




Error Observed :
 
ORA-24365: error in character conversion
The character set used and the function calls were proper.
 
Solution :
  
After lot of searching , few possible reasons for this error was found to be , when using DBI & DBD modules for Oracle - if ORACLE_HOME environment is not set in the webserver configuration , then those library functions may return this error.
  • In our case we used Apache HTTPD web server, so we added our DB install directory in httpd.conf configuration file.
  • SetEnv ORACLE_HOME "/u01/product/db_1"
  • Restarted the web services , after which error was not observed.
Hope this helps to some.

SOLVED : PLS-00201 , PLS-00221: 'DBMS_LOCK' is not a procedure or is undefined

In an application using Oracle database DBMS_LOCK procedure  , sometimes if the grant permissions are not provided it may result in below errors
 

 


Error observed  : PLS-00201

PLS-00201: identifier 'SYS.DBMS_LOCK' must be declared

Solution :

Reason : DBMS Lock package is not declared 

  • Login to DB schema
  • Execute the oracle default procedure $ORACLE_HOME/rdbms/admin/dbmslock.sql
  • @$ORACLE_HOME/rdbms/admin/dbmslock.sql


Error observed  : PLS-00221

SQL> exec DBMS_LOCK();
BEGIN DBMS_LOCK(); END;

      *
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00221: 'DBMS_LOCK' is not a procedure or is undefined
ORA-06550: line 1, column 7:

PL/SQL: Statement ignored

Solution :

Reason : Schema user may not be having permission to use DBMS Lock package
  • Login to DB schema
  • Execute the grant query to provide permission access to DBMS lock package
  • Syntax : GRANT EXECUTE on dbms_lock to <dbuser>;
  • Example :  GRANT EXECUTE on dbms_lock to shareolite;

Hope it helps to some beginners.

–>