Mit DBMS_METADATA.GET_DDL kann man auf Grundlage von existierenden Tabellen Create Table Statements erzeugen. Z.B.: SELECT DBMS_METADATA.GET_DDL(object_type=>’TABLE‘, schema=>t.owner, name=>t.table_name, ) AS ctas FROM dba_tables t ;
Weiterlesen »Kategorie: Heute gelernt
ora-06502 bulk bind truncated bind
Eine Abfrage Kombination mit CASE, basierend auf einer listagg-Funktion hat in einer PL/SQL Funktion zum ORA-06502 geführt. Und das obwohl der gleiche Code in reinem SQL problemlos funktionierte. select case when anz_le = 0 then …
Weiterlesen »Folding von Source-Code
Folding (:help folding) Das Folding ermöglicht es, unnötige Bereiche auszublenden und damit die Übersicht zu erhöhen. Folds können entweder manuell oder automatisch erstellt werden. Tastenkombinationen: Tastenkombination Beschreibung zf{motion} erstellt einen neuen Fold zo / zO …
Weiterlesen »Parameterübergabe für execute immediate Variable
Man kann einem execute immediate -Statment noch Parameter mitgeben. Damit spart man sich u.U. die Maskierung der Hochkommas. Z.B.: v_sql := ‚insert into r3_tid_management ( destination ,trans_id ,status ) values ( :1, :2, :3 )‘; …
Weiterlesen »Komma-Separated list für IN-Klausel
Auf https://blogs.oracle.com/aramamoo/how-to-split-comma-separated-string-and-pass-to-in-clause-of-select-statement wird erklärt, wie man in einer WHERE … IN Klausel eine String-Variable nutzen kann. Ein noch besseres Beispiel funktioniert so: with test as (select ‚KART,KART-SPG,PAL‘ col from dual) select regexp_substr(col, ‚[^,]+‘, 1, level) …
Weiterlesen »Copy & Paste für markierte Bereiche mit VIM
Marken am Anfang und Ende des Bereichs setzen ma und mb Bereich zwischen den Marken a und b in Register a einfügen :’a,’b y a Inhalt des Registers a einfügen „ap
Weiterlesen »Suche nach Daten mit unterschiedlichen Attributen für einen gemeinsamen Oberbegriff
Um aus einer Tabelle mit Auftragspositionen diejenigen zu finden, die bei gleicher Auftragsnummer einen unterschiedlichen Status auf Positionslevel haben, verwendet man eine analytische Funktion wie folgt: SELECT * FROM ( SELECT COUNT (DISTINCT status) OVER …
Weiterlesen »Zeichenreferenz-Codes
In XML oder HTML-Dokumenten werden manchmal noch Zeichenreferenz-Codes angewendet, wenn nicht im Header auf UTF-8 verwiesen wird. Die gültigen Codes für Umlaute und andere Sonderzeichen lassen sich dann mit Hilfe der o.g. Codes darstellen. Hier …
Weiterlesen »SQL für Informationen im CLOB Feld
Falls man nach Informationen in einem CLOB Feld sucht, funktioniert das nicht mit einer normalen WHERE-Klausel in Verbindung mit LIKE oder INSTR. Als Workaround kann man mit dbms_lob.substr gezielt Daten rauskopieren, z.B.: select * from …
Weiterlesen »Wochen-Nummer in SQL-Abfrage
In Abhängigkeit vom Format innerhalb der TO_CHAR Funktion kann es sein, dass für den 31.12.2017 die 52 oder die 53 als Kalenderwoche geliefert wird. Z.B.: select to_char(TO_DATE(‚31.12.2017‘, ‚dd.mm.yyyy‘), ‚IW‘) from DUAL; –52 select to_char(TO_DATE(‚31.12.2017‘, ‚dd.mm.yyyy‘), …
Weiterlesen »