Feed aggregator
shared_pool_size and the streams_pool_size parameters
Can the shared_pool_size and the streams_pool_size parameters be set to the same value?
Both parameters are currently set to zero. I would like to set them both to 2g. I will need to use about 1.5g of the streams_pool memory for Golden Gate. Will this work?
Thanks much for your help.
Categories: DBA Blogs
how to know if a PDF is digitally signed
Hello. I have an application in which users upload PDFs to a table. How can I check in PL/SQL if a PDF in a blob is digitally signed?
Ideally I'd like to know if the signature is valid, but just knowing if a file is not signed would be enough to reject it and save manual work.
Thanks
Categories: DBA Blogs
UNDO tablespace cannot support transaction
Hi,
Due to my work environment, I'm not allowed to cut and paste from my environment.
As a result of that I cannot provide a specific test case, but just gives symptoms, would you give me general guidance on how to approach this problem?
I'm running a huge insert 10878201 rows, and each record is quite fat, it has about 50 or 60 columns. The query was issued from Toad and the connection handle was lost because Toad froze and then when restarted the same connection handle was lost. However, I did a DBMS_SESSION trace enable on the sid, serial#, and got a lot of UNDO segment info in the trace file and then finally it says in the trace:
Problem: Undo tablespace cannot support required UNDO retention
Recommendation: Size UNDO tablespace to 3702 MB
However, there are 11 datafiles (32G * 11) in the UNDO and AFAIK my (Insert into SELECT * from huge table) was the only Active USER transaction that day (4 days back). Somehow the tablespace allocated could have easily supported the UNDO_RETENTION (28800).
REDO Logs: There are 4 log groups (2 per thread), each is 200MB, this particular transaction is running on thread 1 of RAC node1.
1) Shall I try to split the transactions into manageable size chunks and commit every 10000 rows or so?
2) Will resizing the REDO log size help?
Adding significant info to this question:
I get a "ORA-30036" in the trace file generated about 4days back when Toad froze.
However, the session still shows up as ACTIVE in gv$session and last_call_et keeps on inreasing.
I hope this added info will help
Thanks
Categories: DBA Blogs
PARTITION RANGE ITERATOR
hello ,
i have a table TDRCORE.FCM_CCBF ,
PARTITION BY RANGE (RQO_PROC_UTC_DATETIME TIMESTAMP(6))
INTERVAL( NUMTODSINTERVAL(7, 'DAY'))
tehre is an SQL running on LIVE db that comtains many unions but i will not post full script , i will post just 1 part of the union (all the other selects in this union are exatly the same , just different tables)
/* Formatted on 03-Jul-24 10:36:19 (QP5 v5.294) */
<code>
ALTER SESSION SET CURRENT_SCHEMA=TDRCORE;
EXPLAIN PLAN
FOR
WITH currTime
AS (SELECT TO_TIMESTAMP (
TO_CHAR (SYS_EXTRACT_UTC (CURRENT_TIMESTAMP),
'YYYY-MM-DD HH24:MI:SS'),
'YYYY-MM-DD HH24:MI:SS')
AS endts
FROM DUAL)
(SELECT 'FCM_CCBF' AS DBTABLE,
t26.CMX_TRAN_ID AS CMX_TRAN_ID,
t26.CMX_CREATE_TIMESTAMP,
currTime.endts,
CASE
WHEN ( ( COALESCE (t26.WAX_USER_FRAUD_A_IND, '0')
|| COALESCE (t26.WAX_USER_FRAUD_B_IND, '0')
|| COALESCE (t26.WAX_USER_FRAUD_C_IND, '0')
|| COALESCE (t26.WAX_USER_FRAUD_D_IND, '0')
|| COALESCE (t26.WAX_USER_FRAUD_H_IND, '0')
|| COALESCE (t26.WAX_USER_FRAUD_M_IND, '0')
|| COALESCE (t26.WAX_USER_FRAUD_O_IND, '0')
|| COALESCE (t26.WAX_USER_FRAUD_P_IND, '0')
|| COALESCE (t26.WAX_USER_FRAUD_R_IND, '0')
|| COALESCE (t26.WAX_USER_FRAUD_T_IND, '0')
|| COALESCE (t26.WAX_USER_FRAUD_W_IND, '0')
|| COALESCE (t26.WAX_USER_FRAUD_X_IND, '0'))) > 0
OR ( t26.WAX_SCORE_1_TAG IN ('1', '3')
OR t26.WAX_SCORE_2_TAG IN ('1', '3')
OR t26.WAX_SCORE_3_TAG IN ('1', '3')
OR t26.WAX_SCORE_4_TAG IN ('1', '3'))
THEN
1
ELSE
0
END
AS FRAUD_IND,
TRIM (t26.RRR_MODEL_ID_1) AS "RRR_MODEL_ID_1",
TRIM (t26.RRR_MODEL_ID_2) AS "RRR_MODEL_ID_2",
TRIM (t26.RRR_MODEL_ID_3) AS "RRR_MODEL_ID_3",
TRIM (t26.RRR_MODEL_ID_4) AS "RRR_MODEL_ID_4",
TRIM (t26.RRR_MODEL_SCORE_1) AS "RRR_MODEL_SCORE_1",
TRIM (t26.RRR_MODEL_SCORE_2) AS "RRR_MODEL_SCORE_2",
TRIM (t26.RRR_MODEL_SCORE_3) AS "RRR_MODEL_SCORE_3",
TRIM (t26.RRR_MODEL_SCORE_4) AS "RRR_MODEL_SCORE_4",
TRIM (t26.RRR_MODEL_VERSION_1) AS "RRR_MODEL_VERSION_1",
TRIM (t26.RRR_MODEL_VERSION_2) AS "RR...
Categories: DBA Blogs
Loading External Data, Flat file, into an Oracle Table.
Hi Tom,
I need to come up with an automated method to insert data (xml_type) from an external flat file into to a table in Oracle Database using SQL Developer.
Read some articles which shows how to load the files by using a control file, but I couldn't find any article about how to automate the process.
Your help is greatly appreciated.
Thanks,
Chat
Categories: DBA Blogs
FastAPI Endpoint for Sparrow LLM Agent
FastAPI Endpoint for Sparrow LLM Agent. I show how FastAPI endpoint is used in Sparrow to run LLM agent functionality from API client.
Can we Add C Style Pointers to PL/SQL?
In my last blog on Extreme PL/SQL I mentioned pointers in PL/SQL. PL/SQL does not support pointers or dynamic memory management in the same way that we can write in C code. In C code we can define a variable....[Read More]
Posted by Pete On 28/06/24 At 09:03 AM
Categories: Security Blogs
23ai Lock-free reservations
An old truth in Oracle and just about all relational databases has been that an update on one row by one session will block an update by another session on the same row. Until the first session commits or rolls back. That is until 23ai. Or at least in some very specific scenarios. Let’s consider a situation where we need to track changes to a numeric value up or down by some quantity. This could be the amount in a […]
APEX AI Assistance ? Does it comes out of the Box ? or We need to Pay to AI Provider like ChatGPT ?
Hi There,
all the recent news about APEX AI Assistance for code generation ? doe sit comes out of the box ? or we need to configure and pay to AI/LLM provider like ChatGPT ?
I am referring to your recent video Build AI-Powered Enterprise Apps Faster with Oracle APEX (https://www.youtube.com/watch?v=qZD8wtn7qoI )
Regards,
Dr. Gyana
Categories: DBA Blogs
Export backup fails with ORA-39127: unexpected error from call to TAG: SCHEDULER Calling: SYS.DBMS_SCHED_CLASS_EXPORT.GRANT_EXP obj:
we see this error in the daily full=Y backup :
Processing object type DATABASE_EXPORT/SCHEMA/PROCACT_SCHEMA
ORA-39127: unexpected error from call to TAG: SCHEDULER Calling: SYS.DBMS_SCHED_CLASS_EXPORT.GRANT_EXP obj: SYS.IDX_RB$CLASS_54724 - SCHEDULER CLASS
ORA-01031: insufficient privileges
ORA-06512: at "SYS.DBMS_SCHED_MAIN_EXPORT", line 2601
ORA-06512: at "SYS.DBMS_SCHED_CLASS_EXPORT", line 41
ORA-06512: at line 1
ORA-06512: at "SYS.DBMS_SCHED_MAIN_EXPORT", line 2601
ORA-06512: at "SYS.DBMS_SCHED_CLASS_EXPORT", line 41
ORA-06512: at line 1
ORA-06512: at "SYS.DBMS_METADATA", line 11144
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
Processing object type DATABASE_EXPORT/EARLY_POST_INSTANCE_IMPCALLOUT/MARKER
But, when we checked ( as sysdba) - this object dosn't exist in the container that it runs:
SYS.IDX_RB$CLASS_54724
no changes were made to the database/ shell script that runs the export datapump backup.
we had seen the same issue on 10th june 2024, but without any changes the next days export backups ran good.
yesterday - again the same error is seen.
not sure what could be causing it - here is the export command that we use for daily backup:
( the $vars are location/filenames generated in script)
expdp $pcsbackup job_name=${jobname}\
directory=DIR_DBEXP\
dumpfile=${dmpfile_name}\
logfile=${logfile_name}\
full=y\
cluster=no \
parallel=4\
exclude=STATISTICS\
exclude=SCHEMA:\" IN \(SELECT USERNAME FROM DBATOOL.EXPDP_EXCLUDE_DWP_BACKUP_TABLES\)\"\
ENCRYPTION=DATA_ONLY \
ENCRYPTION_PASSWORD=<OurProdEncPassowrd> \
ENCRYPTION_MODE=DUAL \
COMPRESSION=DATA_ONLY
Categories: DBA Blogs
not able to export AUDSYS.AUD$UNIFIED:SYS_P23021 -- same table/partition was exported w/o issues yesterday by job using full=yes
our Daily job expdp has full=yes and worked OK till last night.
last night the expdp log showed:
ORA-31693: Table data object
"AUDSYS"."AUD$UNIFIED":"SYS_P23021" failed to load/unload and is being skipped due to error:
ORA-02354: error in exporting/importing data
ORA-08103: object no longer exists
Attempt to manually backup the same using same user created to export full database - fails with:
expdp $pcsbackup cluster=NO parallel=1 job_name=expdp_tbl DUMPFILE=expdp_gecdwp_full_2024_0618_222801_failedobjs_%U.dmp LOGFILE=expdp_gecdwp_full_2024_0618_222801_failedobjs.log directory=dir_dbexp exclude=statistics encryption=data_only ENCRYPTION_PASSWORD=***** ENCRYPTION_MODE=DUAL COMPRESSION=DATA_ONLY full=no tables=AUDSYS.AUD\$UNIFIED\:SYS_P23021
Export: Release 19.0.0.0.0 - Production on Wed Jun 19 09:03:27 2024
Version 19.20.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
Starting "PCSBACKUP"."EXPDP_TBL": /********@gecdwp_pcsbackup cluster=NO parallel=1 job_name=expdp_tbl DUMPFILE=expdp_gecdwp_full_2024_0618_222801_failedobjs_%U.dmp LOGFILE=expdp_gecdwp_full_2024_0618_222801_failedobjs.log directory=dir_dbexp exclude=statistics encryption=data_only ENCRYPTION_PASSWORD=******** ENCRYPTION_MODE=DUAL COMPRESSION=DATA_ONLY full=no tables=AUDSYS.AUD$UNIFIED:SYS_P23021
ORA-39166: Object AUDSYS.AUD$UNIFIED was not found or could not be exported or imported.
ORA-31655: no data or metadata objects selected for job
Job "PCSBACKUP"."EXPDP_TBL" completed with 2 error(s) at Wed Jun 19 09:04:08 2024 elapsed 0 00:00:39
tried different combos for table name:
AUDSYS.AUD\$UNIFIED:SYS_P23021 -- AND ABOVE - same error
expdp $pcsbackup cluster=NO parallel=1 job_name=expdp_tbl DUMPFILE=expdp_gecdwp_full_2024_0618_222801_failedobjs_%U.dmp LOGFILE=expdp_gecdwp_full_2024_0618_222801_failedobjs.log directory=dir_dbexp exclude=statistics encryption=data_only ENCRYPTION_PASSWORD=***** ENCRYPTION_MODE=DUAL COMPRESSION=DATA_ONLY full=no tables=AUDSYS.AUD$UNIFIED:SYS_P23021
Export: Release 19.0.0.0.0 - Production on Wed Jun 19 09:00:37 2024
Version 19.20.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
Starting "PCSBACKUP"."EXPDP_TBL": /********@gecdwp_pcsbackup cluster=NO parallel=1 job_name=expdp_tbl DUMPFILE=expdp_gecdwp_full_2024_0618_222801_failedobjs_%U.dmp LOGFILE=expdp_gecdwp_full_2024_0618_222801_failedobjs.log directory=dir_dbexp exclude=statistics encryption=data_only ENCRYPTION_PASSWORD=******** ENCRYPTION_MODE=DUAL COMPRESSION=DATA_ONLY full=no tables=AUDSYS.AUD:SYS_P23021
ORA-39166: Object AUDSYS.AUD was not found or could not be exported or imported.
ORA-31655: no data or metadata objects selected for job
Job "PCSBACKUP"."EXPDP_TBL" completed with 2 error(s) ...
Categories: DBA Blogs
LOB caching check
Hi,
In order to improve reading performance of a LOB column in my table, I enable CACHE option for it.
But when I check in the buffer cache using gv$bh (I did some SELECT queries on it so it can be cached), I cannot find any entries for my cached LOB.
<code>SELECT *
FROM gv$bh
WHERE lobid =
(SELECT object_id
FROM dba_lobs lob, dba_objects obj
WHERE lob.table_name = 'MY_TABLE' -- it contains only one lob column, so the returned result is unique
AND lob.SEGMENT_NAME = obj.object_name
AND lob.owner = obj.owner);</code>
Is this the way to go? or I m missing something?
Thanks.
Categories: DBA Blogs
Need a sql to find break hours hours between two dates and between 10PM to next day 6AM. 30mins break for every 4 hours
Could you please kindly check and advise on the following. i need to find break hours between two dates. and also i need to find if this break mins is within night hours (10PM to 6AM next day).
ex:
employee work schedule 11-MAY-2012 16:00:00 and 12-MAY-2012 09:00:00.
Break hour that fall between 10PM to 6 AM is as follows
8:00PM to 8:30PM - 1st Break
12:30 Am to 1:00 AM - 2nd Break
5:00AM to 05:30 AM - 3rd break
two of the breaks are between 10PM and 6AM next day hence my night hours break time is 60mins.
i am using following, but is there any better solution
<code> (SELECT COUNT(1)
FROM (SELECT TO_CHAR ((:SHIFT_START + ((val*4.5)/24)), 'YYYY-MM-DD HH24:MI:SS') TIME ,VAL
FROM (select to_number(val,0) VAL
from (select distinct regexp_substr('1,2,3,4,5','[^,]+',1,level) val
from dual
connect by level <=regexp_count('1,2,3,4,5',',')+1
order by val)
WHERE ROWNUM <=
( FLOOR (
( 24
* ( TO_DATE (
TO_CHAR (:SHIFT_END, 'YYYY-MM-DD hh24:mi'),
'YYYY-MM-DD hh24:mi')
- TO_DATE (
TO_CHAR (:SHIFT_START,
'YYYY-MM-DD hh24:mi'),
'YYYY-MM-DD hh24:mi')))
/ 4))
)
) DT
WHERE TO_DATE (DT.TIME,'YYYY-MM-DD HH24:MI:SS')
BETWEEN TO_DATE(TRUNC(:SHIFT_START),'YYYY-MM-DD HH24:MI:SS')+22/24 AND
TO_DATE(TRUNC(:SHIFT_START),'YYYY-MM-DD HH24:MI:SS')+24/24+6/24
)*0.5
ELSE 0 END NIGHT_BREAK_HOURS</code>
Appreciated your kind help in check and advise on this
Categories: DBA Blogs
unable to successfully created Rest Enabled Sql
1) I am using oracle xe 21c database, apex 24.1 and deployed on tomcat 9.0.90 on my labtop
2) I try to connect my office server using Rest enabled sql service. Where I rest enabled entire schema
3) On my labtop when I try to connect it giving me error : The URL of this remote server does not point to a REST Enabled SQL service. Please check the details of your REST Enabled SQL service definition.
4) When I write same url in browser and ending with table name it showing the data.
5) Before 24.1 menas in 18.x to 20.x its working.
6) For rest enabled sql require same version of ords both side? Please guide because both side apex version and ords version are different (my labtop and my office server I am try using remotely )
7) At my office I rest enabled schema from sql workshop->restfull service also run the following scripts
BEGIN
ORDS.enable_schema(
p_enabled => TRUE,
p_schema => 'SVM',
p_url_mapping_type => 'BASE_PATH',
p_url_mapping_pattern => 'hr',
p_auto_rest_auth => FALSE
);
COMMIT;
END;
/
PLEASE REFERE THE ATTACHED VIDEO
https://drive.google.com/file/d/1VONL-ngqD53xjnxKLWSzob63qtD-jSdy/view?usp=sharing
same case appear on apex.oracle.com
workspace :[redacted]
username:[redacted]
password :[redacted]
Application id :[redacted]
Rest enabled SQL service name : svm
Categories: DBA Blogs
Using pragma inline to affect every invocation of the specified subprogram
I understand how to use the online pragma before the invocation of a subprogram that should be inline, but based on the Oracle documentation (https://docs.oracle.com/en/database/oracle/oracle-database/19/lnpls/plsql-optimization-and-tuning.html#GUID-2E78813E-CF29-409D-9F8B-AA24B294BFA2) it should also be possible to use pragma inline to affect every invocation of the specified subprogram:
<i>When the INLINE pragma immediately precedes a declaration, it affects: Every invocation of the specified subprogram in that declaration</i>
Unfortunately when trying to do so it seems as if this would not work as expected when reading the documentation:
<code>
ALTER SESSION SET PLSQL_WARNINGS = 'ENABLE:ALL';
CREATE OR REPLACE PACKAGE foo IS
PROCEDURE bar;
END foo;
/
CREATE OR REPLACE PACKAGE BODY foo IS
PRAGMA INLINE (sub, 'YES');
PROCEDURE sub;
PROCEDURE bar IS
BEGIN
dbms_output.put_line('bar');
sub;
END bar;
PROCEDURE sub IS
BEGIN
dbms_output.put_line('sub');
END sub;
END foo;
/
SELECT * FROM user_errors;
</code>
PLW-05011: pragma INLINE for procedure 'SUB' does not apply to any calls
Categories: DBA Blogs