Get a ORA-32104 error: Debian Oracle10gR2 OCCI
My code is very simple, and i got an exception when I was trying to execute the following code env = Environment::createEnvironment (Environment::OBJECT); I have also tried env = Environment::createEnvironment (); The result is exactly the same.
The exception is "Error while trying to retrieve text for error ORA-32104"
My host is Debian, gcc4.1.2, and I have got the new occi library. I am confused with the error.
I compiler the code with gcc3.4.3, but got the same error.
Thanks.
using namespace oracle::occi;
using namespace std;
int
main( int argc, char* argv[] )
Environment * env = NULL;
// Open a connection to the database, then close it.
int ret = 0;
try
env = Environment::createEnvironment(Environment::OBJECT);
catch (SQLException ea)
cerr << " Oracle10g: " << ea.what();
ret = 1;
Environment::terminateEnvironment(env);
return 0;
}Thanks in advance,
summer
Do you have the following set in your ENV
ORACLE_HOME
ORACLE_SID
rgds
Similar Messages
-
Why am I getting an ORA-04052 error when I try to compile a Procedure?
Hi,
The following procedure I'm getting an ORA-04052 error when I try to compile the following procedure.
CREATE OR REPLACE PROCEDURE APPS.Find_String (
pin_referenced_name IN dba_dependencies.referenced_name%TYPE)
IS
cursor cur_get_dependancy
is
SELECT distinct owner, name, type
FROM [email protected] -- prod.world
WHERE lower(referenced_name) = lower(pin_referenced_name) --'ftbv_salesrep_all_1d'
AND referenced_type <> 'SYNONYM'
AND owner <> 'SYS'
order by name;
v_owner varchar2(40);
v_name varchar2(50);
v_type varchar2(40);
BEGIN
dbms_output.put_line(upper(pin_referenced_name)||' is found in the following objects.');
dbms_output.put_line(' ');
dbms_output.put_line(RPAD('OWNER', 30, ' ')||RPAD('NAME', 60, ' ')||RPAD('OBJECT TYPE', 30, ' '));
dbms_output.put_line('-------------------------------------------------------------------------------------------------------------------');
FOR i IN cur_get_dependancy
LOOP
v_owner := RPAD(i.owner, 30, ' ');
v_name := RPAD(i.name, 45, ' ');
v_type := RPAD(i.type, 30, ' ');
dbms_output.put_line(v_owner ||v_name|| v_type);
END LOOP;
END find_string;I'm using the link [email protected]. The procedure compiles for other database links used in the cursor including the one commented to the right of the code 'prod.world'.
What's even stranger is that I took the SELECT statement
SELECT distinct owner, name, type
FROM [email protected] -- prod.world
WHERE lower(referenced_name) = lower(pin_referenced_name) --'ftbv_salesrep_all_1d'
AND referenced_type <> 'SYNONYM'
AND owner <> 'SYS'
order by name;out of the procedure and ran it on the command line using the @pinp.world link, the SQL statement ran just fine. But when I tried to compile the above procedure with that exact same SQL statement with the exact same link I get the following string of errors.
ORA-04052: error occurred when looking up remote object [email protected]
ORA-00604: error occurred at recursive SQL level 1
ORA-02068: following severe error from PINP
ORA-03113: end-of-file on communication channelHow can the link work just fine in a regular SQL statement but then cause an error when its compiled in code that otherwise compile just fine when using any other link or even just a plain database. Does anyone have any suggestions?OK Justin,
Here's the query by itself run in another database using the @pinp.world link and querying the dba_dependencies table in the pinp.world database. As you can see the query using this link works just fine returning the requested rows. I can't figure out why the compiler is having an issue with essentially this same query when I try to compile it in a cursor in TOAD. Also this is the database (dev1.world) that I'm trying to compile this Procedure in.
By the way I'm in an Oracle 9.2.0.6 database and TOAD v9.2.
SQL> conn apps/apps1@dev1
Connected.
SQL> SELECT distinct owner, name, type
2 FROM [email protected]
3 WHERE lower(referenced_name) = lower('ALL_USERS')
4 AND referenced_type <> 'SYNONYM'
5 AND owner <> 'SYS'
6 order by name;
OWNER NAME TYPE
PUBLIC ALL_USERS SYNONYM
XDB DBMS_XDBUTIL_INT PACKAGE BODY
XDB DBMS_XDBZ0 PACKAGE BODY
SYSTEM MVIEW_EVALUATIONS VIEW
SYSTEM MVIEW_EXCEPTIONS VIEW
SYSTEM MVIEW_FILTER VIEW
SYSTEM MVIEW_LOG VIEW
SYSTEM MVIEW_RECOMMENDATIONS VIEW
SYSTEM MVIEW_WORKLOAD VIEW
ORASSO WWCTX_API PACKAGE BODY
PORTAL WWCTX_API PACKAGE BODY
ORASSO WWEXP_UTL PACKAGE BODY
PORTAL WWEXP_UTL PACKAGE BODY
PORTAL WWPOB_API_PAGE PACKAGE BODY
PORTAL WWPOF PACKAGE BODY
ORASSO WWPRO_PROVIDER_VALIDATION PACKAGE BODY
PORTAL WWPRO_PROVIDER_VALIDATION PACKAGE BODY
PORTAL WWSBR_EDIT_ATTRIBUTE PACKAGE BODY
PORTAL WWSBR_FOLDER_PORTLET PACKAGE BODY
PORTAL WWSBR_USER_PAGES_PORTLET PACKAGE BODY
ORASSO WWUTL_API_PARSE PACKAGE BODY
OWNER NAME TYPE
PORTAL WWUTL_API_PARSE PACKAGE BODY
PORTAL WWUTL_EXPORT_IMPORT_LOV PACKAGE BODY
ORASSO WWUTL_LOV PACKAGE BODY
PORTAL WWUTL_LOV PACKAGE BODY
PORTAL WWV_CONTEXT PACKAGE BODY
PORTAL WWV_CONTEXT_UTIL PACKAGE BODY
PORTAL WWV_DDL PACKAGE BODY
PORTAL WWV_GENERATE_UTL PACKAGE BODY
PORTAL WWV_GLOBAL PACKAGE
PORTAL WWV_MONITOR_DATABASE PACKAGE BODY
PORTAL WWV_PARSE_AS_SPECIFIC_USER PACKAGE BODY
PORTAL WWV_PARSE_AS_USER PACKAGE BODY
PORTAL WWV_SYS_DML PACKAGE BODY
PORTAL WWV_SYS_RENDER_HIERARCHY PACKAGE BODY
PORTAL WWV_THINGSAVE PACKAGE BODY
PORTAL WWV_UTIL PACKAGE BODY
PORTAL WWV_UTLVALID PACKAGE BODY
38 rows selected.
SQL>Let me know what you think.
Thanks again. -
Getting an ORA-24333 error while parsing a non SELECT statement ...
Hi,
I'm new to this forum and I've search through the entire forum to see if my problem was already solved, but at first sight it doesn't ?
So I hope that someone can help me one this : I'm facing a strange problem with the OCI 8i. I've encapsulated any OCI call into a set of C++ classes. Everything works fine apart for one point : whenever I try to parse a NON "select" statement, I get the ORA-24333 error.
Basically, the code follow the current schema (only "important" states are written here) :
-> Opening an Oracle Session
-> Receving de statement.
-> Analyse it with a call to OCIStmtPrepare() with OCI_NTV_SYNTAX set.
-> Calling OCIBindByName() to associate each variable with a data.
-> Calling OCIStmtExecute() with OCI_DESCRIBE_ONLY set in order to retrieve the current list of INPUT/OUTPUT columns.
And this is where the problem arise.
With a statement like : "SELECT MyPackage.MyFunction(:v1) FROM DUAL"
Everthing works fine. I can bind the INPUT/OUTPUT ":v1" variable.
But with a statement like : "BEGIN MYFUNTION(:v1); END;"
I get the ORA-24333 error after the call to OCIStmtExecute().
I get this error only when I set OCI_DESCRIBE_ONLY. If I call OCIStmtExecute() with OCI_DEFAULT, the OCI execute the statement. This is fine but it's not what I want. I cannot change the statement received (by design), so they should be proceeded as received.
What I'm looking for is a way to successfully perform the OCIStmtExecute() with OCI_DESCRIBE_ONLY set in order to get the list of variables columns related to the current statement.
Any help would be greatly apprecitated here. Thanks !
Here are my current configurations.
-> Windows 2000 SP5 OCI 8i / VC++ 6.0
-> Macintosh OS X 10.3.4 / Code Warrior 8.3
(The code produce exactly the same results/troubles on both plateforms.)
Thanks in advance for your respons.Hi,
I'm new to this forum and I've search through the entire forum to see if my problem was already solved, but at first sight it doesn't ?
So I hope that someone can help me one this : I'm facing a strange problem with the OCI 8i. I've encapsulated any OCI call into a set of C++ classes. Everything works fine apart for one point : whenever I try to parse a NON "select" statement, I get the ORA-24333 error.
Basically, the code follow the current schema (only "important" states are written here) :
-> Opening an Oracle Session
-> Receving de statement.
-> Analyse it with a call to OCIStmtPrepare() with OCI_NTV_SYNTAX set.
-> Calling OCIBindByName() to associate each variable with a data.
-> Calling OCIStmtExecute() with OCI_DESCRIBE_ONLY set in order to retrieve the current list of INPUT/OUTPUT columns.
And this is where the problem arise.
With a statement like : "SELECT MyPackage.MyFunction(:v1) FROM DUAL"
Everthing works fine. I can bind the INPUT/OUTPUT ":v1" variable.
But with a statement like : "BEGIN MYFUNTION(:v1); END;"
I get the ORA-24333 error after the call to OCIStmtExecute().
I get this error only when I set OCI_DESCRIBE_ONLY. If I call OCIStmtExecute() with OCI_DEFAULT, the OCI execute the statement. This is fine but it's not what I want. I cannot change the statement received (by design), so they should be proceeded as received.
What I'm looking for is a way to successfully perform the OCIStmtExecute() with OCI_DESCRIBE_ONLY set in order to get the list of variables columns related to the current statement.
Any help would be greatly apprecitated here. Thanks !
Here are my current configurations.
-> Windows 2000 SP5 OCI 8i / VC++ 6.0
-> Macintosh OS X 10.3.4 / Code Warrior 8.3
(The code produce exactly the same results/troubles on both plateforms.)
Thanks in advance for your respons. -
Why do I get this ORA-21780 error?
So I have a before insert update trigger and all it does it simply populate some audit columns in my record.
Why when I move data into this table would I get this error?
At no time is this trigger also inserting into the same table.
ORA-21780: Maximum number of object durations exceeded.
ORA-06512: at "SYS.STANDARD", line 575
ORA-06512: at "BEFORE_INSERT_UPDATE_TRG", line 4
ORA-04088: error during execution of trigger 'BEFORE_INSERT_UPDATE_TRG'
This is with an Oracle 11gR1 RAC setup.it works OK for me.
SQL> drop table table1;
Table dropped.
SQL> @trig1
SQL> create table table1
2 (id number,
3 field_a varchar2(30),
4 field_b timestamp,
5 field_c varchar2(30),
6 field_d timestamp)
7 /
Table created.
SQL> CREATE OR REPLACE TRIGGER "BEFORE_INSERT_UPDATE_TRG'"
2 BEFORE INSERT OR UPDATE
3 ON TABLE1
4 FOR EACH ROW
5 BEGIN
6 IF inserting then
7 :new.field_a := nvl(:new.field_a,user);
8 :new.field_b := nvl(:new.field_b,systimestamp);
9 ELSIF updating then
10 :new.field_c := nvl(:new.field_c,user);
11 :new.field_d := systimestamp;
12 END IF;
13 END;
14 /
Trigger created.
SQL> insert into table1 (id) values(1);
1 row created.
SQL> select * from table1;
ID FIELD_A
FIELD_B
FIELD_C
FIELD_D
1 USER1
16-APR-11 07.53.50.581147 PM
SQL> -
Hi,
Getting the following error.
Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
Export done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set
server uses WE8ISO8859P1 character set (possible charset conversion)
About to export specified tables via Conventional Path ...
. . exporting table PARTITION_JOB 0 rows exported
EXP-00056: ORACLE error 904 encountered
ORA-00904: "SYS"."DBMS_EXPORT_EXTENSION"."FUNC_INDEX_DEFAULT": invalid identifier
Export terminated successfully with warnings.
error DendriteException : Dendrite.Scheduler.SchedulerPlugIn v1.5.0.1120 GenericSQL.ExecuteArchive :
Export: Release 10.1.0.5.0 - Production on Mon Dec 10 00:01:06 2007ORA-00904: string: invalid identifier
Cause: The column name entered is either missing or invalid.
Action: Enter a valid column name. A valid column name must begin with a letter, be less than or equal to 30 characters, and consist of only alphanumeric characters and the special characters $, _, and #. If it contains other characters, then it must be enclosed in double quotation marks. It may not be a reserved word. -
If your getting the ora-12154 error...
If you have followed the directions provided and swear you have done everything right... then try this.
Check to make sure the tnsnames.ora and sqlnet.ora files are actually .ORA files. I recently started a new job and was tasked with getting instant client working with a VB app. Anyhow, I installed instant client and added the enviroment variables etc etc. I kept getting the 12154 error when testing a sqlplus connection and I couldn't understand why.
Well since this was a new computer I was working on, I hadn't change the setting when viewing files so it was hiding the file type from me and all I could see was "tnsnames.ora" when the file was really "tnsnames.ora.txt". A day later I figured it out and felt pretty stupid!
Windows Explorer | Tools | Folder Options | View | Uncheck "Hide extensions for known file types"
Check those file types people...I think you had done a "terrific" job helping novices like me to check/fix the error with the hidden tnsnames.ora.txt extension. I think it is very useful information.
Thank a lot. -
Only in my PC I get the ORA-03113 ERROR..
Hi
I have tried to run a simple QUERY (SELECT * FROM marcas;) but if the table has more than 2,000 records I get the error ORA-03113, but if I run the same query in other PC I don't have problems. If the table has less than 2,000 I don't have problems in my PC.
I have SQL*Plus: Release 9.2.0.1.0
Why?...I need help!!!!! thanks!!!Hi,
could be a network problem. Check your Oracle Client installation using others tools like tnsping. Sometime firewalls or similar can interrupt a connection. Check also your pc with applications that use a persistent connection like a long file transfert.
Hope this helps
Sam -
Getting an ORA-01003 error importing images using Apex import options
I took an export of the images from my application (would be nice if this was included in the applicatoin export options)
When I try to import, I get the following error
Execution of the statement was unsuccessful. ORA-01003: no statement parsed
begin wwv_flow.g_import_in_progress := true; end;
ORA-01003: no statement parsed
This worked for me on apex.oracle.com.. can't do it on any of my apex instances.
I am able to import applications without a problem
Any suggestions?Anyone have any ideas?
-
Getting OERR: ORA 12705 error when trying to connect.
I have tomcat running on red hat and I'm trying to connect to a remote server running Oracle 10g using a thin driver. But I keep getting this error when I try to connect. I've tried setting NLS_LANG=AMERICAN_AMERICA.UTF8, NLS_LANG=AMERICAN_AMERICA.US7ASCII, and NLS_LANG=.
I'm not doing any ALTER SESSIONS. I wrote a test app and all it does is connect and does 1 simple select query.Unset it on the client and try again.
Also see if Note:294104.1 will help you -
Problem Connection To Apex - Getting a ORA-12705 Error in the Apache Log
Hello,
We are having issues trying to connect to out Apex instance on our gateway server, as we are getting a 503 Server Temporary Unavailable response and looking in the log file we can see its reporting a:
HTTP-503 ORA-12705: invalid or unkown NLS parameter value specifiedAnd we dont know what is causing this at all. Our DBA has tried to re-create the DAD and we have had a look at our NLS settings and there doesn't seem anything to suggest there is a problem. Also our DBA has been able to connect to the database using SQL plus and as the user APEX_PUBLIC_USER. Below is our NLS settings on the database:
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET WE8MSWIN1252
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_RDBMS_VERSION 11.2.0.2.0and our dad configuration is:
Alias /i/ "<$ORACLE_HOME>/Apache/images/"
AddType text/xml xbl
AddType text/x-component htc
<Location /pls/apex>
Order deny,allow
PlsqlDocumentPath docs
AllowOverride None
PlsqlDocumentProcedure wwv_flow_file_mgr.process_download
PlsqlDatabaseConnectString <host>:<port>:<service name> ServiceNameFormat
PlsqlNLSLanguage AMERICAN_AMERICA.AL32UTF8
PlsqlAuthenticationMode Basic
SetHandler pls_handler
PlsqlDocumentTablename wwv_flow_file_objects$
PlsqlDatabaseUsername APEX_PUBLIC_USER
PlsqlDefaultPage apex
PlsqlDatabasePassword <apex_public_user password>
PlsqlRequestValidationFunction wwv_flow_epg_include_modules.authorize
Allow from All
</Location>Our database version is: 11.2.0.2 and our application server is 10g release 2.
Any help on this would be greatly appreciated.
Cheers,
Paul.This is normally an issue related to environment variables.
can you connect from your application server host to your database using sqlplus.
SET NLS_LANG=AMERICAN_AMERICAN.WE8MSWIN1252
sqlplus <username>/<password>@alias -
Using database-link in view to get around ORA-01031 error
I have been granted select rights on a users table. I am therefore able to select from his table. If however I try create a view against his table I run into the ORA-01031 problem. I have worked around this problem by creating a database-link to myself and then adding that to the view creation and it works. What are the downsides of using the database-link in this way?
The only down side I have been able to identify is that a extra session is created and that the CPU has a little extra work due to the LOOP BACK that takes place. I need to ensure the network is not unnessesarly used and therefore will need to ensure that 127.0.0.1 (local host) is used in the database connection discription. e.g.
create database link my_db_link connect to scott identified by tiger using '(description=(address=(protocol=tcp)(host=127.0.0.1) (Port = 1521) ) (connect_data= (sid=ora10g)))'; -
I am getting this "ORA-24381: error(s) in array DML error" in the code
declare
TYPE RehrCD_TYP IS TABLE OF wk_rehr_entity_hierarchy.wk_rehr_cd%TYPE;
TYPE RehrParentCD_TYP IS TABLE OF wk_rehr_entity_hierarchy.wk_rehr_parent_cd%TYPE;
TYPE RehrESSPath_TYP IS TABLE OF wk_rehr_entity_hierarchy.wk_rehr_ess_path%TYPE;
L_levelRehrCD RehrCD_TYP;
L_levelParentCD RehrParentCD_TYP;
L_levelessPath RehrESSPath_TYP;
L_cItem VARCHAR2(50) := 'PRC_Update_Level :';
L_rows NUMBER DEFAULT 0;
CURSOR Update_Level_CUR
IS
SELECT
wk_rehr_cd
,wk_rehr_parent_cd
,wk_rehr_ess_path
FROM
wk_rehr_entity_hierarchy
WHERE
wk_rehr_ess_path LIKE '/ENTITY/ACTIVITY_USD%';
BEGIN
OPEN Update_Level_CUR;
BEGIN
LOOP
FETCH Update_Level_CUR
BULK COLLECT INTO
L_levelRehrCD
,L_levelParentCD
,L_levelessPath
LIMIT 10000;
EXIT WHEN L_levelRehrCD.count = 0;
dbms_output.put_line(1);
FORALL i IN L_levelRehrCD.FIRST .. L_levelRehrCD.LAST SAVE EXCEPTIONS
UPDATE
wk_rehr_entity_hierarchy
SET
wk_rehr_ess_level = RPKG_Entity_Hierarchy.Get_Level(L_levelessPath(i))
WHERE
wk_rehr_cd = L_levelRehrCD(i)
AND wk_rehr_parent_cd = L_levelParentCD(i);
FOR j IN 1 .. L_levelRehrCD.COUNT
LOOP
L_rows := L_rows+ SQL%BULK_ROWCOUNT(j);
END LOOP;
END LOOP;
CLOSE Update_Level_CUR;
END;
end;
Please help me how to debug it?Just get rid of the whole looping approach - it's slow, inefficient and you don't need it.
A single sql statement should always outperform looping code.
Also, try to bring the logic of RPKG_Entity_Hierarchy.Get_Level inline to the SQL.
If it's based on the column wk_rehr_ess_path then you might be able to use CONNECT BY or other methods to remove what is a bad practice and classic performance killer.
I was going to suggest a MERGE statement like this:
MERGE
INTO wk_rehr_entity_hierarchy wk
USING (SELECT wk_rehr_cd
, wk_rehr_parent_cd
, RPKG_Entity_Hierarchy.Get_Level(wk_rehr_ess_path) lvl
FROM wk_rehr_entity_hierarchy
WHERE wk_rehr_ess_path LIKE '/ENTITY/ACTIVITY_USD%') xx
ON (wk.wk_rehr_cd = xx.wk_rehr_cd
AND wk.wk_rehr_parent_cd = xx.wk_rehr_parent_cd)
WHEN MATCHED THEN
UPDATE
SET wk_rehr_ess_level = xx.lvl;But then I realised you're selecting from and updating the same table.
Are you sure this isn't achievable in just a single update?
UPDATE wk_rehr_entity_hierarchy
SET wk_rehr_ess_level = RPKG_Entity_Hierarchy.Get_Level(wk_rehr_ess_path)
WHERE wk_rehr_ess_path LIKE '/ENTITY/ACTIVITY_USD%';And then you can bring that function logic inline - much more efficient. -
Can't get my plsql working, ORA-05602 error
Hello all, I am experiencing an issue with my plsql and I have check all my variables and it seems to be hidden from my eyes. This is my package:
create or replace package body PKG_TESTSTR is
type segment is record (
bbold boolean,
bundr boolean,
bital boolean,
bleft boolean,
brigh boolean,
bcent boolean,
bjust boolean,
btipo varchar2(1),
text VARCHAR2(32767));
type LSEGMENTS is TABLE OF segment index by pls_integer;
function splitSegments2(input VarChar2) return LSEGMENTS
Is
l_idx pls_integer;
bbold boolean := false;
bundr boolean := false;
bital boolean := false;
bleft boolean := false;
brigh boolean := false;
bcent boolean := false;
bjust boolean := false;
btipo varchar2(1);
info VarChar2(32767);
i pls_integer := 0;
segments LSEGMENTS;
Begin
info := input;
loop
l_idx := instr(info,'<');
i := i + 1;
segments(i).bbold := bbold;
segments(i).bundr := bundr;
segments(i).bital := bital;
segments(i).bleft := bleft;
segments(i).brigh := brigh;
segments(i).bcent := bcent;
segments(i).bjust := bjust;
segments(i).btipo := btipo;
if l_idx > 0 then
if upper(substr(info,l_idx+1,2)) = 'B>' then
if bbold then raise_application_error(-20010, 'B'); end if;
if l_idx = 1 then
i := i - 1;
else
segments(i).text := substr(info,1,l_idx-1);
end if;
bbold := true;
info := substr(info,l_idx+3);
btipo := 'F';
elsif upper(substr(info,l_idx+1,2)) = 'I>' then
if bital then raise_application_error(-20010, 'I'); end if;
if l_idx = 1 then
i := i - 1;
else
segments(i).text := substr(info,1,l_idx-1);
end if;
bital := true;
info := substr(info,l_idx+3);
btipo := 'F';
elsif upper(substr(info,l_idx+1,2)) = 'U>' then
if bundr then raise_application_error(-20010, 'U'); end if;
if l_idx = 1 then
i := i - 1;
else
segments(i).text := substr(info,1,l_idx-1);
end if;
bundr := true;
info := substr(info,l_idx+3);
btipo := 'F';
elsif upper(substr(info,l_idx+1,15)) = 'P ALIGN="LEFT">' then
if bleft then raise_application_error(-20010, 'P LEFT'); end if;
if l_idx = 1 then
i := i - 1;
else
segments(i).text := substr(info,1,l_idx-1);
end if;
bleft := true;
info := substr(info,l_idx+16);
btipo := 'A';
elsif upper(substr(info,l_idx+1,16)) = 'P ALIGN="RIGHT">' then
if brigh then raise_application_error(-20010, 'P RIGHT'); end if;
if l_idx = 1 then
i := i - 1;
else
segments(i).text := substr(info,1,l_idx-1);
end if;
brigh := true;
info := substr(info,l_idx+17);
btipo := 'A';
elsif upper(substr(info,l_idx+1,17)) = 'P ALIGN="CENTER">' then
if bcent then raise_application_error(-20010, 'P CENTER'); end if;
if l_idx = 1 then
i := i - 1;
else
segments(i).text := substr(info,1,l_idx-1);
end if;
bcent := true;
info := substr(info,l_idx+18);
btipo := 'A';
elsif upper(substr(info,l_idx+1,18)) = 'P ALIGN="JUSTIFY">' then
if bjust then raise_application_error(-20010, 'P JUSTIFY'); end if;
if l_idx = 1 then
i := i - 1;
else
segments(i).text := substr(info,1,l_idx-1);
end if;
bjust := true;
info := substr(info,l_idx+19);
btipo := 'A';
elsif upper(substr(info,l_idx+1,3)) = '/B>' then
if not bbold then raise_application_error(-20010, '/B'); end if;
if l_idx = 1 then
i := i - 1;
else
segments(i).text := substr(info,1,l_idx-1);
end if;
bbold := false;
info := substr(info,l_idx+4);
elsif upper(substr(info,l_idx+1,3)) = '/I>' then
if not bital then raise_application_error(-20010, '/I'); end if;
if l_idx = 1 then
i := i - 1;
else
segments(i).text := substr(info,1,l_idx-1);
end if;
bital := false;
info := substr(info,l_idx+4);
elsif upper(substr(info,l_idx+1,3)) = '/U>' then
if not bundr then raise_application_error(-20010, '/U'); end if;
if l_idx = 1 then
i := i - 1;
else
segments(i).text := substr(info,1,l_idx-1);
end if;
bundr := false;
info := substr(info,l_idx+4);
elsif upper(substr(info,l_idx+1,3)) = '/P>' and bleft then
if not bleft then raise_application_error(-20010, '/P LEFT'); end if;
if l_idx = 1 then
i := i - 1;
else
segments(i).text := substr(info,1,l_idx-1);
end if;
bleft := false;
info := substr(info,l_idx+4);
elsif upper(substr(info,l_idx+1,3)) = '/P>' and brigh then
if not brigh then raise_application_error(-20010, '/P RIGHT'); end if;
if l_idx = 1 then
i := i - 1;
else
segments(i).text := substr(info,1,l_idx-1);
end if;
brigh := false;
info := substr(info,l_idx+4);
elsif upper(substr(info,l_idx+1,3)) = '/P>' and bcent then
if not bcent then raise_application_error(-20010, '/P CENTER'); end if;
if l_idx = 1 then
i := i - 1;
else
segments(i).text := substr(info,1,l_idx-1);
end if;
bcent := false;
info := substr(info,l_idx+4);
elsif upper(substr(info,l_idx+1,3)) = '/P>' and bjust then
if not bjust then raise_application_error(-20010, '/P JUSTIFY'); end if;
if l_idx = 1 then
i := i - 1;
else
segments(i).text := substr(info,1,l_idx-1);
end if;
bjust := false;
info := substr(info,l_idx+4);
else
segments(i).text := substr(info,1,l_idx);
info := substr(info,l_idx+1);
btipo := 'T';
end if;
else
segments(i).text := info;
exit;
end if;
end loop;
return segments;
End;
function generateReportsTags(input Varchar2) return Varchar2
Is
segments LSEGMENTS;
resp varchar2(32767);
--resp long;
bold boolean := false;
alin boolean := false;
tipo varchar2(1);
y number;
Begin
dbms_output.put_line('Iniciando execucao');
y := 0;
segments := splitSegments2(input);
dbms_output.put_line('Passou pelo split');
for i in segments.first .. segments.last loop
if i = 1 then
resp := '<report>' || chr(13) || chr(10);
resp := resp || '<layout>' || chr(13) || chr(10);
resp := resp || '<section name="main">' || chr(13) || chr(10);
resp := resp || '<body>' || chr(13) || chr(10);
resp := resp || '<frame name="M_1">' || chr(13) || chr(10);
resp := resp || '<geometryInfo x="0.00000" y="0.00000" width="7.12500" height="3.00000"/>' || chr(13) || chr(10);
resp := resp || '<generalLayout verticalElasticity="variable"/>' || chr(13) || chr(10);
resp := resp || '<text name="B_1" minWidowLines="1">' || chr(13) || chr(10);
resp := resp || '<textSettings spacing="single"/>' || chr(13) || chr(10);
end if;
if nvl(tipo,' ') <> ' ' and nvl(tipo,' ') <> nvl(segments(i).btipo,' ') then
resp := resp || '</text>' || chr(13) || chr(10);
resp := resp || '<text name="B_1" minWidowLines="1">' || chr(13) || chr(10);
end if;
if segments(i).btipo in ('A') then
if segments(i).brigh then
resp := resp || '<textSettings justify="end" spacing="single"/>' || chr(13) || chr(10);
elsif segments(i).bcent then
resp := resp || '<textSettings justify="center" spacing="single"/>' || chr(13) || chr(10);
elsif segments(i).bjust then
resp := resp || '<textSettings justify="flush" spacing="single"/>' || chr(13) || chr(10);
elsif segments(i).bleft then
resp := resp || '<textSettings justify="start" spacing="single"/>' || chr(13) || chr(10);
end if;
end if;
if i = 1 then
y := 0.00000;
resp := resp || '<geometryInfo x="0.06250" y="0.00000" width="7.00000" height="0.75000"/>' || chr(13) || chr(10);
resp := resp || '<generalLayout verticalElasticity="variable"/>' || chr(13) || chr(10);
elsif nvl(tipo,' ') <> ' ' and nvl(tipo,' ') <> nvl(segments(i).btipo,' ') then
y := y + 0.75000;
--width="7.06250"
resp := resp || '<geometryInfo x="0.06250" y="'|| to_char(y + 0.00000, '0.00000') ||'" width="7.00000" height="0.75000"/>' || chr(13) || chr(10);
resp := resp || '<generalLayout verticalElasticity="variable"/>' || chr(13) || chr(10);
end if;
resp := resp || '<textSegment>' || chr(13) || chr(10);
if segments(i).bbold then
resp := resp || ' bold="yes"';
end if;
if segments(i).bital then
resp := resp || ' italic="yes"';
end if;
if segments(i).bundr then
resp := resp || ' underline="yes"';
end if;
resp := resp || '/>' || chr(13) || chr(10);
resp := resp || '<string>' || chr(13) || chr(10);
resp := resp || '<![CDATA[';
resp := resp || segments(i).text;
resp := resp || ']]>' || chr(13) || chr(10);
resp := resp || '</string>' || chr(13) || chr(10);
resp := resp || '</textSegment>' || chr(13) || chr(10);
if (bold = true or alin = true) then
bold := false;
alin := false;
end if;
tipo := segments(i).btipo;
if i = segments.last then
resp := resp || '</text>' || chr(13) || chr(10);
resp := resp || '</frame>' || chr(13) || chr(10);
resp := resp || '</body>' || chr(13) || chr(10);
resp := resp || '</section>' || chr(13) || chr(10);
resp := resp || '</layout>' || chr(13) || chr(10);
resp := resp || '</report>' || chr(13) || chr(10);
end if;
end loop;
return resp;
End;
procedure splitSegments(input VarChar2)
Is
segments LSEGMENTS;
function Prin (bbold boolean, bundr boolean, bital boolean, bleft boolean, brigh boolean, bcent boolean, bjust boolean) return VarChar2
Is
resp VarChar2(3) := '';
begin
if bbold then resp := resp || 'B'; end if;
if bundr then resp := resp || 'U'; end if;
if bital then resp := resp || 'I'; end if;
if bleft then resp := resp || 'P'; end if;
if brigh then resp := resp || 'P'; end if;
if bcent then resp := resp || 'P'; end if;
if bjust then resp := resp || 'P'; end if;
return resp;
end;
Begin
segments := splitSegments2(input);
for i in segments.first .. segments.last loop
dbms_output.put_line(prin(segments(i).bbold, segments(i).bundr, segments(i).bital, segments(i).bleft, segments(i).brigh, segments(i).bcent, segments(i).bjust) || ' : ' || segments(i).text);
end loop;
End;
end PKG_TESTSTR;I am getting an ORA-05602 error, and then an ORA-05612 at line 3 when I try to use and input with more than 4000 chars. Is this the problem?? I have changed all my varchar2 variables to get 32767 chars but i am still facing the same error.
What I am possible doing wrong?
Many thanks for all replies
Thiago LocatelliThat would be a bit of a problem once I cant get the part where it is raising such error. I have put dbms_output for debug, but everything goes in the outpout window but the error occurs.
I am using plsql/developer to test the function... -
Ora-01401 error on a complex view
I'm getting a ora-01401 error on a view of the following structure.
SQL> desc vu_mat_product_msds_ingred;
Name Null? Type
MSDS_COMMENTS VARCHAR2(500)
MAT_PROD_MSDS_SOURCE VARCHAR2(30)
MISSING_INGRED_IND CHAR(1)
FLASH_POINT_COMMENTS VARCHAR2(100)
MSDS_ENTER_BY_ID NUMBER
CURRENT_AS_OF_DT DATE
MFG_REVISION_DT DATE
GROUP_ID NUMBER
CALC_VAPOR_PRESSURE NUMBER
CALC_VAPOR_PRESSURE_UOM VARCHAR2(5)
CALC_VAPOR_TEMPERATURE NUMBER
CALC_VAPOR_TEMPERATURE_UOM CHAR(1)
MAT_PROD_SPECIFIC_GRAVITY VARCHAR2(15)
CALC_SPECIFIC_GRAVITY NUMBER(6,4)
MAT_PROD_PROD_ID NOT NULL NUMBER
MAT_PROD_MFG_ID NOT NULL NUMBER
CLASS_ID NUMBER
CHEM_INV_IND CHAR(1)
SLED_EXEMPT_IND CHAR(1)
ACTIVE_IND CHAR(1)
WAIVER_REQD_IND CHAR(1)
ITEM_NAME VARCHAR2(60)
TRADE_NAME VARCHAR2(60)
HAZARD_CD CHAR(1)
FLASH_PT_IND CHAR(1)
FLASH_PT NUMBER
FLASH_PT_CMP CHAR(1)
FLASH_PT_SCALE_CD CHAR(1)
FLASH_PT_METHOD VARCHAR2(6)
VOC_QTY_GL NUMBER
VOC_QTY_PG NUMBER
VOC_QTY_OZ NUMBER
DISPOSAL_CD CHAR(1)
PRODUCT_STATE_CD CHAR(1)
TEMPERATURE_CD CHAR(1)
CTS_CD CHAR(1)
MAT_PROD_PPE_CD CHAR(1)
EXEMPTION_CD CHAR(1)
PCT_VOLAT_VOL NUMBER
PCT_VOLAT_WGT NUMBER
VAPOR_PRESSURE NUMBER
VAPOR_PRESSURE_UOM VARCHAR2(5)
VAPOR_TEMPERATURE NUMBER
VAPOR_TEMPERATURE_UOM CHAR(1)
VOC_COMMENTS VARCHAR2(250)
VOLATILE_LBS_GAL NUMBER
ARC1 VARCHAR2(2)
ARC2 VARCHAR2(2)
ARC3 VARCHAR2(2)
ARC4 VARCHAR2(2)
PURE_IND CHAR(1)
SITE_USAGE_IND CHAR(1)
PROPRIETARY_IND CHAR(1)
MSDS_PREP_DT DATE
MSDS_ENTER_DT DATE
HMOTW_ID NUMBER
ITEM_PRICE NUMBER(9,2)
RESTR_PRODUCT_IND CHAR(1)
CONTAINER_ID NOT NULL NUMBER
MAT_PROD_CONT_PROD_ID NOT NULL NUMBER
UPC_CD VARCHAR2(15)
SKU_NR VARCHAR2(60)
NSN VARCHAR2(15)
KIT_PART_CD VARCHAR2(2)
MFG_PART_NR VARCHAR2(60)
CONTAINER_SIZE NUMBER(10,4)
CONTAINER_SIZE_UOM VARCHAR2(3)
CNTAIN_KGRAMS_QTY NUMBER
MFGKIT_IND CHAR(1)
SEPARATE_IND CHAR(1)
TYP_CNTAIN_CD VARCHAR2(2)
CNTAIN_PRES_CD CHAR(1)
PROD_ST_CD CHAR(1)
PRODUCT_NR NOT NULL NUMBER(7)
PRODUCT_UI VARCHAR2(2)
MAT_PROD_MFG_MFG_ID NOT NULL NUMBER
CAGE NOT NULL VARCHAR2(5)
MFG_UPC VARCHAR2(7)
MFG_NAME NOT NULL VARCHAR2(50)
MFG_ADDR1 VARCHAR2(100)
MFG_ADDR2 VARCHAR2(100)
MFG_CITY VARCHAR2(100)
MFG_STATE_PROVINCE VARCHAR2(60)
MFG_POSTAL_CD VARCHAR2(30)
MFG_COUNTRY VARCHAR2(40)
MFG_EMRG_PHONE VARCHAR2(40)
MFG_INFO_PHONE VARCHAR2(40)
WEB_SITE_URL VARCHAR2(500)
PROP_SHIP_NM_ID NUMBER
MAT_PROD_MSDS_PPE_CD CHAR(1)
MSDS_ID NOT NULL NUMBER
MAT_PROD_MSDS_PROD_ID NOT NULL NUMBER
MAT_PROD_MSDS_MSDS_SOURCE VARCHAR2(30)
PUBLICATION_CD CHAR(1)
HEALTH_CD CHAR(1)
CONTACT_CD CHAR(1)
FIRE_CD CHAR(1)
REACT_CD CHAR(1)
PROT_EYE CHAR(1)
PROT_SKIN CHAR(1)
PROT_RESP CHAR(1)
FOCAL_PT_CD VARCHAR2(2)
SUPPLY_IM VARCHAR2(3)
MSDS_PREPR_NAME VARCHAR2(50)
PREP_COMPANY VARCHAR2(40)
PREP_ADD1 VARCHAR2(100)
PREP_ADD2 VARCHAR2(100)
PREP_CITY VARCHAR2(100)
PREP_STATE_PROVINCE VARCHAR2(60)
PREP_POSTAL_CD VARCHAR2(30)
MSDS_SHIP_NAME VARCHAR2(600)
MSDS_PKG_GRP VARCHAR2(3)
MSDS_UN_NA VARCHAR2(2)
MSDS_UN_NA_NR VARCHAR2(5)
MSDS_UN_NA_PAGE VARCHAR2(5)
SPEC_NR VARCHAR2(20)
SPEC_TYP_GR_CLS VARCHAR2(20)
HAZ_STOR_COMP_CD VARCHAR2(5)
HAZ_CATEGORY_1 VARCHAR2(10)
HAZ_CATEGORY_2 VARCHAR2(10)
NRC_LIC_NR VARCHAR2(15)
NET_PROP_WGT_AMMO VARCHAR2(7)
APPEAR_ODOR VARCHAR2(80)
BOIL_PT VARCHAR2(11)
MELT_PT VARCHAR2(11)
VPR_PRESSURE VARCHAR2(30)
VPR_DENSITY VARCHAR2(30)
ONETOONE_ID NUMBER(1)
VPR_TEMP VARCHAR2(30)
MAT_PROD_MSDS_SPECIFIC_GRAVITY VARCHAR2(15)
DECOMP_TEMP VARCHAR2(11)
EVAP_RATE VARCHAR2(25)
SOLUB_WATER VARCHAR2(20)
CHEM_PH VARCHAR2(11)
CORROSION_RATE VARCHAR2(8)
FLASH_POINT VARCHAR2(20)
LOW_EXPL_LTD VARCHAR2(12)
UP_EXPL_LTD VARCHAR2(12)
EXTINGUISH_MEDIA VARCHAR2(500)
SP_FIRE_FGT_PROCD VARCHAR2(800)
UN_FIRE_EXPL_HAZ VARCHAR2(500)
STABILITY VARCHAR2(3)
COND_AVOID_STAB VARCHAR2(120)
MAT_AVOID VARCHAR2(500)
HAZ_DECOMP_PROD VARCHAR2(500)
HAZ_POLY_OCCUR VARCHAR2(3)
COND_AVOID_POLY VARCHAR2(120)
LD50_LC50_MIX VARCHAR2(40)
ROUTE_ENTRY_INHALE VARCHAR2(3)
ROUTE_ENTRY_SKIN VARCHAR2(3)
ROUTE_ENTRY_INGEST VARCHAR2(3)
HLTH_HAZ_ACUTE_CRON VARCHAR2(500)
CARCIN_NTP VARCHAR2(10)
CARCIN_IARC VARCHAR2(10)
CARCIN_OSHA VARCHAR2(10)
STORAGE_TYPE VARCHAR2(10)
EXPL_CARCIN VARCHAR2(500)
SIGN_SYMPT_OVREXPOS VARCHAR2(600)
MED_COND_AGGR_EXPOS VARCHAR2(500)
EMRG_1ST_AID_PROCD VARCHAR2(600)
STEP_MAT_REL_SPILL VARCHAR2(500)
NEUTRAL_AGENT VARCHAR2(80)
WAST_DISP_METHOD VARCHAR2(600)
HAND_STOR_PRECAUT VARCHAR2(600)
OTHER_PRECAUT VARCHAR2(500)
RESP_PROT VARCHAR2(350)
VENTILATION VARCHAR2(120)
PROT_GLOVE VARCHAR2(120)
EYE_PROT VARCHAR2(120)
OTHER_PROT_EQUIP VARCHAR2(500)
WORK_HYG_PRACT VARCHAR2(500)
SUPP_SAFE_HLTH_DATA VARCHAR2(500)
SPEC_HAZ_AND_PREC VARCHAR2(650)
CHRONIC_CD CHAR(1)
CARCINOGEN_CD CHAR(1)
ACUTE_CD CHAR(1)
REPRO_TOXIN_IND CHAR(1)
ROUTE_ENTRY_EYES VARCHAR2(3)
INGREDIENTINFORMATION MAT_PRODUCT_INGRED_LIST
SQL> desc mat_product_ingred_list;
mat_product_ingred_list TABLE OF MAT_PRODUCT_INGRED_TYPE
Name Null? Type
INGRED_ID NUMBER
PRODUCT_ID NUMBER
MCM_CHEM_MSTR_ID NUMBER
CHEM_VAPOR_ID NUMBER
INGRED_SEQ_NR VARCHAR2(2)
INGRED_NIOSH VARCHAR2(9)
PERCNT VARCHAR2(7)
CALC_PERCNT NUMBER
OSHA_PEL VARCHAR2(20)
ACGIH_TLV VARCHAR2(22)
REC_LIMIT VARCHAR2(20)
MCM_EXEMPT_IND CHAR(1)
VOC_REACTIVITY_CD VARCHAR2(2)
STATE_POLLUTANT_CD VARCHAR2(10)
PERCENT_LOW NUMBER
PERCENT_HIGH NUMBER
PROPRIETARY_IND CHAR(1)
MPI_CHEM_MSTR_ID NUMBER
CHEM_CAS_NO VARCHAR2(12)
CHEM_TYPE VARCHAR2(1)
CHEM_NAME VARCHAR2(255)
CHEM_FORMULA VARCHAR2(35)
CHEM_RCRA_CD VARCHAR2(4)
MOLECULAR_WGT NUMBER(7,3)
MOLECULAR_WGT_SOURCE VARCHAR2(100)
VAPOR_PRESSURE NUMBER(8,2)
VAPOR_PRESSURE_UOM VARCHAR2(5)
VAPOR_PRESSURE_SOURCE VARCHAR2(100)
VAPOR_TEMP NUMBER
VAPOR_TEMP_UOM CHAR(1)
IRIS_IND CHAR(1)
RPT_QTY NUMBER
TPQ1 NUMBER
TPQ2 NUMBER
IC VARCHAR2(3)
OZONE_IND CHAR(1)
EHS_IND CHAR(1)
EPCRA_IND CHAR(1)
CARC_IND CHAR(1)
MPI_EXEMPT_IND CHAR(1)
CHEM_NIOSH VARCHAR2(9)
STATE_CAP NUMBER
LOCAL_CAP NUMBER
TYPE_CD CHAR(1)
CHEM_ACTIVE_IND CHAR(1)
any ideas of why the ora-01401?
Thanks in advance.Did you by any chance buy a Re: Function will not run (and shows with red cross in SQL Developer) from Re: Calling pipelined table functions
-
ORA-12709: error while loading create database character set
I installed Oracle 8.05 on Linux successfully: was able to login
whith SQLPlus, start and stop the db whith svrmgrl etc.
During this install I chose WE8ISO8859P9 as the database
characterset when prompted.
After that I installed Oracle Application Server 3.02, and now
I'm getting the
ORA-12709: error while loading create database character set
message when I try to start up the database, and the database
won't mount.
Platform is RedHat Linux 5.2.
NLS_LANG set to different settings,
e.g. AMERICAN_AMERICA.WE8ISO8859P9
but without success.
Anyone any clue?
Thanks!
nullJogchum Reitsma (guest) wrote:
: I installed Oracle 8.05 on Linux successfully: was able to
login
: whith SQLPlus, start and stop the db whith svrmgrl etc.
: During this install I chose WE8ISO8859P9 as the database
: characterset when prompted.
: After that I installed Oracle Application Server 3.02, and now
: I'm getting the
: ORA-12709: error while loading create database character set
: message when I try to start up the database, and the database
: won't mount.
: Platform is RedHat Linux 5.2.
: NLS_LANG set to different settings,
: e.g. AMERICAN_AMERICA.WE8ISO8859P9
: but without success.
: Anyone any clue?
: Thanks!
You can create the database with WE8DEC character set
and to use the WE8ISO8859P9 on the client or even on Linux.
The NLS_LANG setting doesn't effect the database, but the
interface with the database. The same setting can be used in de
windows 95/98/NT registry.
null
Maybe you are looking for
-
Exchange Passcode requirement won't go away after account deleted
I have a personal iphone that i have my business exchange account. We implemented a new policy to have passcodes on phones. I deleted the account off my phone and the policy for passcode is still on the phone. How do I remove this policy? I do know t
-
Time sheet Display through CAT3
Hi, We are using Cross application time sheets and expense sheet entry in SAP. We have the following issue, can someone please help out to sort it. When we go to the Expense sheet (PR05) through the CAT 2 transaction code (Aeroplane Sign) we see the
-
Oracle declare function in shell script
Please tell me oracle declare function now able to run in shell script? I am calling in shell script like @/myscript.sql it is not working properly, reset update and other oracle command is working fine in shell script.
-
Swapping / rotation of text and graphics using DW3
As "Murray Ace" knows from our dialogue last week, I'm slowly building a site for an HTML class, and the skills I need aren't covered in the class. Here's my question --- and if you can either point me to a resource or tell me what category this is
-
Append Structure for Service Orders
Dear Expert I would like to add the "changed by" field in the General Data Tab of Service Order. For that, I appended the following structures: CRMT_BSP_SRV_OIC_SRCHRES and CRMT_BSP_SRV_SEARCH with the cahnged_by field as defined in CRMD_ORDERADM_H.