IT-Wissen/oracle/README.md
2024-10-03 20:47:28 +02:00

2.5 KiB

Table of Contents

Oracle DB

search for string in entire set of tables of a db

SET SERVEROUTPUT ON SIZE 100000

DECLARE
  match_count INTEGER;
BEGIN
  FOR t IN (SELECT owner, table_name, column_name
              FROM all_tab_columns
              WHERE owner = 'APLKN_ARCHV_SRG' and data_type LIKE '%CHAR%' AND table_name like 'TB%') LOOP

    EXECUTE IMMEDIATE
      'SELECT COUNT(*) FROM ' || t.owner || '.' || t.table_name ||
      ' WHERE '||t.column_name||' like :1'
      INTO match_count
      USING '%Schrank ganz hinten%';

    IF match_count > 0 THEN
      dbms_output.put_line( t.owner ||' --- '||t.table_name ||' --- '||t.column_name||' --- '||match_count );
    END IF;

  END LOOP;

END;

or, without owner:

SET SERVEROUTPUT ON SIZE 100000
DECLARE
  match_count INTEGER;
BEGIN
  FOR t IN (SELECT TABLE_NAME, COLUMN_NAME
              FROM all_tab_columns
              WHERE data_type LIKE '%CHAR%' AND TABLE_NAME LIKE 'TB%') LOOP
 
    EXECUTE IMMEDIATE
      'SELECT COUNT(*) FROM ' || t.TABLE_NAME ||
      ' WHERE '||t.COLUMN_NAME||' like :1'
      INTO match_count
      USING 'Conclusion of Peace between Russia and Esthonia%';
 
  IF match_count > 0 THEN
      dbms_output.put_line( t.TABLE_NAME ||' --- '||t.COLUMN_NAME||' --- '||match_count );
 END IF;
 
  END LOOP;
 
END;

get physical storage place of archval description 88176

SELECT 
  tbs_bhltn.bhltn_def_stand_ort_cd
FROM 
  APLKN_ARCHV_SRG.tbs_vrzng_enht a
LEFT OUTER JOIN 
  APLKN_ARCHV_SRG.tbs_bhltn_vrzng_enht tbs_bhltn_vrzng_enht
ON 
  a.vrzng_enht_id = tbs_bhltn_vrzng_enht.vrzng_enht_id
INNER JOIN 
  APLKN_ARCHV_SRG.tbs_bhltn tbs_bhltn
ON 
  tbs_bhltn.bhltn_id = tbs_bhltn_vrzng_enht.bhltn_id
WHERE 
  a.vrzng_enht_id = 88176;

"limit" in oracle

select * from (
SELECT * FROM APLKN_ARCHV_SRG.TBS_GSFT_OBJ_DTL 
WHERE MEMO_TXT LIKE '%Schrank ganz hinten%';
) 
where ROWNUM <= number;

show instance name (SID)

select sys_context('userenv','instance_name') from dual;

show port and other connection params

select * from v$listener_network;

show tables

SELECT owner, table_name FROM all_tables;

get all tables with col name xy

select table_name 
from all_tab_columns -- or: dba_tab_columns
where column_name like '%GSFT_OBJ_TYP_ID%';

get all physical storage

SELECT tbs_bhltn.* FROM tbs_bhltn WHERE rownum <= 10;

sqlplus

sql file in sqlplus

SQL > @/oracle/scripts/script.sql