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

127 lines
2.5 KiB
Markdown

---
gitea: none
include_toc: true
---
# Oracle DB
## search for string in entire set of tables of a db
``` sql
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:
``` sql
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
``` sql
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
``` sql
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)
```sql
select sys_context('userenv','instance_name') from dual;
```
## show port and other connection params
``` sql
select * from v$listener_network;
```
## show tables
``` sql
SELECT owner, table_name FROM all_tables;
```
## get all tables with col name xy
``` sql
select table_name
from all_tab_columns -- or: dba_tab_columns
where column_name like '%GSFT_OBJ_TYP_ID%';
```
## get all physical storage
``` sql
SELECT tbs_bhltn.* FROM tbs_bhltn WHERE rownum <= 10;
```
## sqlplus
### sql file in sqlplus
```
SQL > @/oracle/scripts/script.sql
```