Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Function Frage

Empfohlene Antworten

Veröffentlicht

hab den fehler gefunden... keine spezifikation gemacht...

(kann man seine eigenen Beiträge löschen)

Vielleicht lässt du deine Frage hier drin und schreibst dazu, wie du sie gelöst hast!

Dann können andere auch davon profitieren, wenn sie mal das selbe Problem haben!

Also ich habe eine Funktione erstellt.

Nach dem ich das Package-Body erstellt hatte, wollte ich diese ausführen.

Da kam aber eine Fehlermeldung: Komponente ERSETZEN muss deklariert werden.

ERSETZEN ist meine Prozedur.

Dann hab ich aber gemerkt das ich gar keine Spezifikation hab... eine gemacht und schon hats funktioniert.

kann mir jeman dasgen, wie ich eine funktion noch ausführen kann oder geht das nur so:

declare

 RET VARCHAR2(32767);

BEGIN

 ret := ANKE.ERSETZEN('Streuner', 'e', 'd');

 dbms_output.put_line(ret);

END;

kann mir jeman dasgen, wie ich eine funktion noch ausführen kann oder geht das nur so

anders als allenfalls noch mit EXEC kenn ichs nicht.

EXEC rueckgabewert := PACKAGE.FUNKTION('parameter','parameter',...)

wieso würdest du die funktion anders ausführen wollen?

s'Amstel

hm damit klappts wohl nicht.

mir hat jemand gesagt das man das ganze auch mit call machen könnte.

dazu hab ich aber nichts gefunden.

ich denke mal call funktioniert nur bei prozeduren?!

man kann eine function uch wie folgt ausführen:

select package.function into ls_ergebnis

from dual;

ah cool danke!

da kann man ja direkt die ganze Tabelle bearbeiten!

Hab aber nochmal eine Frage:

Wie kann man die Länge von Variablen bestimmen?

Ich brauch die Länge von NACHNAME

geht das so CHR(NACHNAME) ?

select length('hallo') from dual;

5
CHR liefert das ascii-zeichen:
select chr(65) from dual;

A
im gegensatz zur ascii-nummer des zeichens:
select ascii('A') from dual;

65

s'Amstel

Morgen!

Also was ich wollte, war bei einem Wort den vorderen mit dem hinteren Buchstaben tauschen.

 FUNCTION TAUSCHEN (NACHNAME VARCHAR2)RETURN VARCHAR


		 IS


		   RET VARCHAR2(32767);

		   X VARCHAR2(32767);

		   Y VARCHAR2(32767);

		   Z VARCHAR2(32767);


		   BEGIN


		   X := SUBSTR(NACHNAME, 1,1);

		   Y := SUBSTR(NACHNAME, (***  );

		   Z := SUBSTR(NACHNAME, -1,1);


		   RET := UPPER(Z) || Y || LOWER(X);


		   RETURN RET;	


		   END TAUSCHEN;



END ANKE;


***

Da soll halt stehen (1, letzten Buchstaben weglassen) aber wie schaffe ich es, das er den letzten Buchstaben weglässt?

ich dachte halt Nachname-1.

		   X := SUBSTR(NACHNAME, 1,1);

		   Y := SUBSTR(NACHNAME, 2, LENGTH(NACHNAME)-2);

		   Z := SUBSTR(NACHNAME, -1,1);

select tauschen('Hallo') from dual

Oallh

s'Amstel

ahja cool danke ich hatte die -2 in der klammer...blöder fehler

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.