Ich bin neu bei Oracle db, und ich frage mich, ob ich den Datentyp und die Datengröße herausfinden kann ... Ich meine: Sagen wir, ich habe die Spalte "location" vom Typ varchar2 (20) in der Tabelle "products". Könnte ich eine Abfrage schreiben, die mich im Ergebnis "varchar2" und "20" zurückgeben würde?
Danke!
Müssen Sie den Typ und die Größe einer Spalte herausfinden, um die Daten zu verstehen, oder schreiben Sie ein Programm, das es zur Laufzeit wissen muss?
Wenn Sie es nur aufgrund Ihres Wissens wissen müssen, können Sie in SQLPlus desc tablename
eingeben, um sich über die Spalten in der Tabelle zu informieren.
Wenn Sie den Typ und die Größe programmgesteuert herausfinden müssen, welche Sprache verwenden Sie ... PL / SQL? Java?
Beachten Sie, dass die Auswahl von USER_TAB_COLUMNS nur die Spalten in Tabellen in Ihrem eigenen Schema auflistet. Für andere Tabellen müssen Sie sich ALL_TAB_COLUMNS (oder DBA_TAB_COLUMNS ansehen, wenn der DBA Ihnen den Zugriff erlaubt hat). Beachten Sie, dass Ihr Arbeitgeber oder Kunde möglicherweise nicht zulassen kann, dass gespeicherte Prozeduren oder Pakete gegen beide kompiliert werden.
Die Antwort auf diese Frage war nützlich für mich. Es gibt jedoch einen wichtigen Unterschied, der berücksichtigt werden muss, wenn die Datenlänge verwendet wird, wenn der Spaltentyp NVARCAHR2
ist. Die für die Spalte NVARCHA2
zurückgegebene Datenlänge wird verdoppelt.
Dies liegt an der verwendeten Zeichencodierung. Oracle-Dokumentation lautet:
Die Anzahl der Bytes kann für AL16UTF16 bis zu zwei Mal größer sein Kodierung und dreifache Größe für die UTF8-Kodierung.
Ideale Abfrage wäre also die folgende:
%Vor%