AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Variablen Größe unter Oracle ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Variablen Größe unter Oracle ermitteln

Ein Thema von static_cast · begonnen am 18. Feb 2005 · letzter Beitrag vom 22. Feb 2005
Antwort Antwort
static_cast

Registriert seit: 19. Okt 2003
Ort: Peine
300 Beiträge
 
#1

Variablen Größe unter Oracle ermitteln

  Alt 18. Feb 2005, 14:23
Datenbank: Oracle • Version: 8/9 • Zugriff über: -
HoiHoi,

habe mal eine Frage an euch DB Spezis

Ich schreibe gerade an einer DB Procedure, und zwar wollte ich jetzt herrausfinden wie ich meinen VARCHAR2 deklariert habe, bzw mit welcher Länge und mir später längenanpassungen bei den L- order RPADS zu sparen.

bsp:
SQL-Code:
nTest NUMBER;
sTest VARCHAR2(50)

nTest:=GETVARSIZE(sTest);
Dann sollte nTest = 50 sein, ich weiß nur nicht wie ich das herrausfinden kann, gibt es sowas wie ich mir denke oder etwas vergleichbares zu meiner erträumten GETVARSIZE Function?

Gruss,
Daniel
Daniel M.
"The WM_NULL message performs no operation. An application sends the WM_NULL message if it wants to post a message that the recipient window will ignore."
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: Variablen Größe unter Oracle ermitteln

  Alt 18. Feb 2005, 14:58
Hallo static_cast,

AFAIK gibt es die Tabelle USER_TAB_COLUMNS. Dort kannst du Informationen zu den einzelnen Tabellen/Feldern erfahren:
SELECT * FROM USER_TAB_COLUMNS Ich weiss jetzt nicht genau, wie die einzelnen Felder usw. heissen, da ich momentan keine Oracle-DB in meiner Naehe habe, aber so muesste es irgendwie gehn...

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#3

Re: Variablen Größe unter Oracle ermitteln

  Alt 18. Feb 2005, 15:06
Es wäre eher All_Tab_Columns. In den User_XXX stehen ja nur deine Objekte.

@daniel
Ich würde dir auch den Weg über das Data Dictionary empfehlen. Ich kenne ehrlich gesagt keine Funktion dafür. (Habe aber auch noch nie direkt danach gesucht... )
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.338 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Variablen Größe unter Oracle ermitteln

  Alt 19. Feb 2005, 21:03
Hier das Statement um alle Felder und deren Infos zu einer Tabelle zu bekommen:
SQL-Code:
Select * from All_Tab_Columns
where owner = '<username>'
  and table_name = '<tabellenname>'
Den Rest überlasse ich Dir
Peter
  Mit Zitat antworten Zitat
static_cast

Registriert seit: 19. Okt 2003
Ort: Peine
300 Beiträge
 
#5

Re: Variablen Größe unter Oracle ermitteln

  Alt 22. Feb 2005, 15:02
Hi,

danke für eure Antworten aber das problem ist, es handelt sich hierbei nicht um eine Tabelle, sondern um Variablen in einer Procedure!

Daher funzt das leider nicht
Daniel M.
"The WM_NULL message performs no operation. An application sends the WM_NULL message if it wants to post a message that the recipient window will ignore."
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#6

Re: Variablen Größe unter Oracle ermitteln

  Alt 22. Feb 2005, 15:06
Haut mich falls ich mich irre, aber wenn du die max. Größe einer Variable in einer SP haben willst, warum siehst du dann nicht oben nach? Die Variablen sind AFAIK doch lokal, und du wirst ja hoffentlich wissen wie du die Dinger deklariert hast
Wie gesagt, ich kann mich auch irren aber...

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
static_cast

Registriert seit: 19. Okt 2003
Ort: Peine
300 Beiträge
 
#7

Re: Variablen Größe unter Oracle ermitteln

  Alt 22. Feb 2005, 15:26
Nene hast schon recht, nur mir ging es halt darum Wartungsarbeiten zu erleichtern.

Das ist jetzt nur ein kleiner Auszug dessen:

SQL-Code:
[...]

sTitel VARCHAR2(60);
sFirstName VARCHAR2(30);
sInitials VARCHAR2(10);
sSurName VARCHAR2(10);
sLastName VARCHAR2(60);
sStreet VARCHAR2(60);
sHouseNr VARCHAR2(10);
sHouseNrExt VARCHAR2(5);
sZipCode VARCHAR2(10);
sCity VARCHAR2(60);

[...]

RPAD(NVL(sTitel,' '),60) ||
RPAD(NVL(sFirstName,' '),30) ||
RPAD(NVL(sInitials,' '),10) ||
RPAD(NVL(sSurName,' '),10) ||
RPAD(NVL(sLastName,' '),60) ||
RPAD(NVL(sStreet,' '),60) ||
RPAD(NVL(sHouseNr,' '),10) ||
RPAD(NVL(sHouseNrExt,' '),5) ||
RPAD(NVL(sZipCode,' '),10) ||
RPAD(NVL(sCity,' '),60) ||
     
[...]
Ich wollte nur an jeweils einer Stelle die längen anpassen müssen um Fehler zu vermeiden und alleine schon der Faulheit wegen
Daniel M.
"The WM_NULL message performs no operation. An application sends the WM_NULL message if it wants to post a message that the recipient window will ignore."
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#8

Re: Variablen Größe unter Oracle ermitteln

  Alt 22. Feb 2005, 15:29
Dann machst mit Konstanten (allerdings weiß ich jetzt auch nicht genau wie das geht ), und versuche die Felder mit den Konstanten als Längenangabe zu deklarieren. Ich rate mal rum:

SQL-Code:
[...]
lTitel NUMBER;
lTitel := 60;
[...]

sTitel VARCHAR2(lTitel);
[...]

RPAD(NVL(sTitel,' '),lTitel) ||
[...]
Ich weiß aber nicht ob das funktioniert, das Prinzip passt aber auf alle Fälle

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
static_cast

Registriert seit: 19. Okt 2003
Ort: Peine
300 Beiträge
 
#9

Re: Variablen Größe unter Oracle ermitteln

  Alt 22. Feb 2005, 15:40
Das wäre eine Idee, aber ich habe keine Ahnung wie ich Konstanten im Deklarationsabschnitt anlegen kann.
Daniel M.
"The WM_NULL message performs no operation. An application sends the WM_NULL message if it wants to post a message that the recipient window will ignore."
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#10

Re: Variablen Größe unter Oracle ermitteln

  Alt 22. Feb 2005, 15:51
Zitat von static_cast:
Das wäre eine Idee, aber ich habe keine Ahnung wie ich Konstanten im Deklarationsabschnitt anlegen kann.
Miep constant integer := XXXX; oder wenn du es in mehreren Code objekten brauchst:
SQL-Code:
create or replace package SomeConstants is
  Miep constant integer := XXXX;
end;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz