Ist es möglich, eine Funktion zu erstellen, die jeden PL-Datensatztyp als Parameter akzeptiert? Dies wäre für die Protokollierung nützlich. Ich habe vorher mit LCRs gespielt und die LCR-Struktur konnte gelesen und Werte extrahiert werden, egal woher sie kamen.Beliebigen Datensatz in Oracle pl/sql lesen
Antwort
Nein, du kannst nicht. Die Problemumgehung besteht darin, ein Unterprogramm zu erstellen, das einen Datensatz in eine Zeichenfolge konvertiert. Ja, es ist mühsam und ausführlich, aber manchmal ist PL/SQL.
declare
type foo_t is record (
a number
,b varchar2(32767)
);
function to_str(r in foo_t) return varchar2 is
begin
return '((a = ' || r.a || ')(b = ' || r.b || '))';
end;
begin
declare
v_foo foo_t;
begin
v_foo.a := 42;
v_foo.b := 'lorem ipsum';
dbms_output.put_line(to_str(v_foo));
end;
end;
/
Wenn Sie klug genug sind, können Sie einen Code-Generator schreiben, die alle diese to_str
Unterprogramme für Sie schreibt.
Ich denke, ich könnte dann so etwas tun: p_write_log ('t_record_type', l_record_type), der erste Parameter wäre der Name des Typs und zweitens der tatsächliche Datensatztyp, der anydata oder anytype zugeordnet ist? und dann konnte ich dba_objects abfragen, diesen Typ finden und dynamisches sql zusammensetzen, das die Umwandlung macht. – user1941235
@ user1941235 Ich glaube nicht, dass das möglich ist. Mein derzeitiges Verständnis ist, dass es keine "anydata/type" für Datensätze gibt. – user272735
- 1. Oracle/PLSQL-Leistung
- 2. PLSQL-Extrakt procudures oracle 9i
- 3. Oracle-Datenbank Verbindungszeichenfolge PLSQL-Kompatibilität
- 4. Wie XML-Datei in Oracle PLSQL
- 5. Oracle: Erhalten von Referenzen in PLSQL
- 6. plsql lesen Textdatei in einem Array
- 7. PLSQL/Oracle How To „Karte“/„Normalisieren“ Nummer
- 8. Pass select-Anweisung zu Oracle PLSQL
- 9. Oracle plsql Switch Case und sqlplus Spool
- 10. Oracle letzten Datensatz auswählen
- 11. Inkrementfunktion in plsql
- 12. Oracle Jdbc CallableStatement schlägt fehl mit plsql enthält CR ("\ r")
- 13. Lesen von beliebigen SD-Kartenordner
- 14. Cifar10-Datensatz in Stapeln lesen
- 15. PLSQL-Procudure (Oracle) Vergleichen einer Variablen in where-Klausel
- 16. Wie als Spaltenname dynamicaly auf Spaltenwert in oracle plsql Abfrage
- 17. Was bedeutet GET in PLSQL?
- 18. Datenprotokollierung mit Oracle (oder einem beliebigen RDBMS)
- 19. Wie die doppelte Datensatz in Oracle-Abfrage
- 20. Datensatz einfügen in zwei Oracle-Tabellen
- 21. Hosting von Oracle PLSQL Cartridge auf Microsoft IIS
- 22. Oracle PLSQL verkürzen Datumsangaben auf 15 min Blöcke
- 23. XML-Signatur, ORACLE PLSQL, SHA1-Digest-Wert-Berechnung
- 24. plsql benutzerdefiniertes numerisches Format
- 25. plsql Cursor iterating Problem
- 26. Datei als einzelnen Datensatz in Hadoop lesen
- 27. Reflexion in PLSQL?
- 28. (+) Funktion in PLSQL
- 29. PLSQL DBMS_LOCK.REQUEST und autonoumeous Prozedur
- 30. Letzte Tag-Funktion - Datensatz Oracle Fusion
Plz mit einigen Beispielen –
ausgearbeitet für was? – Typo
Protokollieren der Datensatztypwerte. Können Sie eine Prozedur schreiben, die jeden Datensatztyp akzeptiert und Werte von diesem Datensatztyp liest, ohne den Datensatztyp zu deklarieren und nicht im Voraus zu wissen, welche Struktur und Typen des Datensatztyps enthalten sind. – user1941235