ORA-39125 during schema export - oracle

Today, I was trying to do export with expdp on Linux 64, Oracle10g:
$ expdp system/manager parfile='datapump/dumps/exp_schema.par'
where exp_schema is:
directory=DPDUMP
dumpfile=prod_exp_APPROOT.dmp
schemas=APPROOT
content=ALL
and getting an error:
ORA-39125: Worker unexpected fatal error in KUPW$WORKER.UNLOAD_METADATA while calling DBMS_METADATA.FETCH_XML_CLOB [TABLE_DATA:"APPROOT"."SED_OUTDOC"]
ORA-31642: the following SQL statement fails:
BEGIN "SYS"."DBMS_SCHED_EXPORT_CALLOUTS".SCHEMA_CALLOUT(:1,1,1,'10.02.00.01.00'); END;
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 86
ORA-06512: at "SYS.DBMS_METADATA", line 907
ORA-31603: object "SCHEDULER$_PROGRAM_ARG" of type TABLE not found in schema "APPROOT"
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 105
ORA-06512: at "SYS.KUPW$WORKER", line 6241
----- PL/SQL Call Stack -----
object line object
handle number name
0x368fb4540 14916 package body SYS.KUPW$WORKER
0x368fb4540 6300 package body SYS.KUPW$WORKER
0x368fb4540 2340 package body SYS.KUPW$WORKER
0x368fb4540 6861 package body SYS.KUPW$WORKER
0x368fb4540 1262 package body SYS.KUPW$WORKER
0x3704b4270 2 anonymous block
Job "SYSTEM"."SYS_EXPORT_SCHEMA_04" stopped due to fatal error at 16:57:57
I don't understand what's wrong..

This looks like the behaviour referred to in Oracle Support note 1109045.1, and suggests a DDL trigger that is, perhaps, preventing objects owned by APPROOT from being dropped. Something simple like this would cause the error you're seeing, I believe, though I don't have a DB at the right patch level to test it:
create or replace trigger block_drop
before drop on schema
begin
raise_application_error(-20001, 'Nope');
end;
/
The support note suggests it affects 10.2.0.1 to 11.2.0.1, so presumbaly the behaviour has changed in later patchsets.

Related

Oracle Database Job run issue-ora01031, insufficient privileges ora06512

I am very new to oracle and dont have much of an idea of how to resolve this problem.
I have two schema ERM22_TEST and ERM22_TEST_CUSTOM
One package exists in RM22_TEST.ASYNC_JOB_QUEUE_COMMAND_BAS
and another package in ERM22_TEST_CUSTOM.C_PSP_INTERFACE
I have a job scheduler in ERM22_TEST_CUSTOM schema, which exports the data from a view in to CSV file, but when I click on run job it gives me the error:
ORA-01031: insufficient privileges
ORA-06512: at "ERM22_TEST.ASYNC_JOB_QUEUE_COMMAND_BAS", line 101
ORA-06512: at "ERM22_TEST.ASYNC_JOB_QUEUE_COMMAND_BAS", line 106
ORA-06512: at "ERM22_TEST_CUSTOM.C_PSP_INTERFACE", line 39
ORA-06512: at "ERM22_TEST_CUSTOM.C_PSP_INTERFACE", line 95
But it same export I do form my application than it export the data in csv file. Both user name are not same which run the database job and run the job from application client.
I just know it has some issue of granting the access but I have no idea how to grant access to ERM22_TEST_CUSTOM schema which run a package in another schema ERM22_TEST.
ORA-01031: insufficient privileges
ORA-06512: at "ERM22_TEST.ASYNC_JOB_QUEUE_COMMAND_BAS", line 101
ORA-06512: at "ERM22_TEST.ASYNC_JOB_QUEUE_COMMAND_BAS", line 106
ORA-06512: at "ERM22_TEST_CUSTOM.C_PSP_INTERFACE", line 39
ORA-06512: at "ERM22_TEST_CUSTOM.C_PSP_INTERFACE", line 95

Can't enable JavaScript MLE on APEX

I am running Oracle APEX 21.1 (build 21.1.3.r1531102) on the 21c express database and for some reason I cannot execute server side code with the JavaScript MLE option.
In the develpment environment it does not show the option at all.
In the SQL commands screen I can only execute pure sql or PL/SQL. If I try to execute the following example
SET SERVEROUTPUT ON;
DECLARE
ctx dbms_mle.context_handle_t;
user_code clob := q'~
console.log('Hello World!');
~';
BEGIN
ctx := dbms_mle.create_context();
dbms_mle.eval(ctx, 'JAVASCRIPT', user_code);
dbms_mle.drop_context(ctx);
EXCEPTION
WHEN others THEN
dbms_mle.drop_context(ctx);
RAISE;
END;
I get the following message:
ORA-00922: missing or invalid option
ORA-06512: at "SYS.WWV_DBMS_SQL_APEX_210100", line 673
ORA-06512: at "SYS.DBMS_SYS_SQL", line 1703
ORA-06512: at "SYS.WWV_DBMS_SQL_APEX_210100", line 659
ORA-06512: at "APEX_210100.WWV_FLOW_DYNAMIC_EXEC", line 1854
A few weeks ago we solved this and I forgot to update this question.
After some work we found out that user needed to be granted access to MLE. I was not that one who fixed, but I've asked the code to post here, check below:
GRANT MLE JAVA
GRANT EXECUTE DYNAMIC MLE to XYZ;
GRANT EXECUTE ON JAVASCRIPT TO XYZ;
Remove the first line or comment this out, I suppose this is for on premise DB version support but not allowed in ADB.

issue on creating package

Warning: Package Body created with compilation errors. BEGIN
ERROR at line 1: ORA-04063: package body "P13279.EMP_DESIGNATION" has errors ORA-06508: PL/SQL: could not find program unit being
called: "P13279.EMP_DESIGNATION" ORA-06512: at line 2
You're referencing a program unit (procedure, function, package) which either doesn't exist, or - if it exists but is owned by someone else - you don't have privileges to access it.

Non useful ORA error when working with KafkaConnect JdbcDriver with Oracle 11g (Strimzi Operator)

I'm using strimzi Kafka operator to work with a Confluent Cluster to achieve an Oracle2Kafka type KafkaConnector with JdbcSourceConnector from confluent.
The KafkaConnector spec
# connector
connection.url: jdbc:oracle:thin:#HOST:PORT/SERVICE
connection.user: USER
connection.password: PASS
dialect.name: OracleDatabaseDialect
topic.prefix: test-topic-
mode: bulk
db.timezone: Europe/Madrid
table.whitelist: TEST_TABLE
But I get the following error in the strimzi-cluster-operator logs.
io.strimzi.operator.cluster.operator.assembly.ConnectRestException: PUT /connectors/confluent-cluster-int-20200706-02/config returned 400 (Bad Request): Connector configuration is invalid and contains the following 2 error(s):
Invalid value java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at line 43
for configuration Couldn't open connection to jdbc:oracle:thin:#***:1534/***
Invalid value java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at line 43
for configuration Couldn't open connection to jdbc:oracle:thin:#***:1534/***
You can also find the above list of errors at the endpoint `/connector-plugins/{connectorType}/config/validate`
at io.strimzi.operator.cluster.operator.assembly.KafkaConnectApiImpl.lambda$null$2(KafkaConnectApi.java:208) ~[io.strimzi.cluster-operator-0.18.0.jar:0.18.0]
If I modify the source I get a much specific stacktrace
2020-07-14 09:33:46,636 ERROR SQLException (io.confluent.connect.jdbc.source.JdbcSourceConnectorConfig) [qtp742672280-21]
java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at line 43
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:509)
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:456)
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:451)
at oracle.jdbc.driver.T4CTTIfun.processError(T4CTTIfun.java:1123)
at oracle.jdbc.driver.T4CTTIoauthenticate.processError(T4CTTIoauthenticate.java:552)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:553)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:269)
at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:501)
at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:1292)
at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:1025)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:747)
at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:793)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:57)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:747)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:562)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:208)
at io.confluent.connect.jdbc.dialect.GenericDatabaseDialect.getConnection(GenericDatabaseDialect.java:223)
at io.confluent.connect.jdbc.source.JdbcSourceConnectorConfig$TableRecommender.validValues(JdbcSourceConnectorConfig.java:606)
at io.confluent.connect.jdbc.source.JdbcSourceConnectorConfig$CachingRecommender.validValues(JdbcSourceConnectorConfig.java:653)
at org.apache.kafka.common.config.ConfigDef.validate(ConfigDef.java:607)
at org.apache.kafka.common.config.ConfigDef.validate(ConfigDef.java:622)
at org.apache.kafka.common.config.ConfigDef.validate(ConfigDef.java:530)
at org.apache.kafka.common.config.ConfigDef.validateAll(ConfigDef.java:513)
at org.apache.kafka.common.config.ConfigDef.validate(ConfigDef.java:495)
at org.apache.kafka.connect.connector.Connector.validate(Connector.java:135)
Some things I already checked
KafkaConnect image is a self-made one with the required addons for the JdbcSourceConnector with an OracleDriver
Dockerfile
FROM strimzi/kafka:0.18.0-kafka-2.5.0
USER root:root
COPY ./kafka-connect-jdbc-5.4.0.jar /opt/kafka/plugins/
COPY ./ojdbc6.jar /opt/kafka/libs/
USER 1001
KafkaConnect resource is deployed successfully, as KafkaConnect topics are being populated on confluent cluster (connect-cluster-configs, connect-cluster-configs, ...)
Oracle driver seems to be successfully loaded. If I add a typo in the credentials or connection chain the error is self-explanatory and makes sense. I also tried other versions of oracle drivers.
Back in time (4 months ago), this same config was working (both on a local strimzi-deployed-cluster and confluent). Now the local cluster works fine, but confluent one fails with the described error.
Tried several upgraded latest versions of strimzi operator and kafka-jdbc-connector
(edit) As suggested in strimzi slack, tried the PUT /connector-plugins/JdbcSourceConnector/config/validate rest endpoint of KafkaConnect and got same 2 errors, in the whitelist and blacklist fields
result
"value": {
"name": "table.blacklist",
"value": "",
"recommended_values": [],
"errors": ["Invalid value java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1\nORA-06502: PL/SQL: numeric or value error: character string buffer too small\nORA-06512: at line 43\n for configuration Couldn't open connection to jdbc:oracle:thin:#***:1534/***"],
"visible": true
}
(edit) I've tried to leave whitelist field empty and error is the same. The database seems not have been changed and the connection chain works fine from source code spring-data access.
I'm out of ideas, any hint is welcome x)
I don't know tools you use, but - the error you got means this:
SQL> declare
2 l_var varchar2(1); -- note length, only 1 character
3 begin
4 l_var := 'Littlefoot'; -- I'm little, but can't fit
5 end;
6 /
declare
*
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at line 4
SQL>
What to do?
SQL> declare
2 l_var varchar2(20); -- is that enough?
3 begin
4 l_var := 'Littlefoot';
5 end;
6 /
PL/SQL procedure successfully completed. --> Yes, it is!
SQL>
Therefore, check the sizes in your code.

oracle DBMS error: PL/SQL: could not find program unit being called: "USER1.S"

All a sudden i get this error when i try to add a new procedure in my package or rename procedure name. it looks like something is locked not allowing me to add or modify new procedures. could anyone explain what goes wrong here?
ERROR at line 1: ORA-04063: package body "USER1.S" has errors
ORA-06508: PL/SQL: could not find program unit being called: "USER1.S"
ORA-06512: at line 1

Resources