Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 393 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

noxtiblack

Foren As

Dabei seit: 19.08.2009

Beiträge: 99

 

1 Zum Seitenanfang

Freitag, 2. April 2010, 19:27

PL/SQL-Funktion mit String-Rückgabewert

Ich fange grade mit PL/SQL an und schreibe eine Funktion, die
einen Stringparameter erhält und je nachdem einen bestimmten
String zurück geben soll. Das ganze soll mit ORACLE funktionieren.
Aber der SQL-Developer sagt mir immer nur "function Kompiliert".

MySQL-Abfrage(n)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
create or replace function  func_datum (lng varchar2)
  return varchar2(20) is
  zeit varchar2(20);
begin
  if lng = 'us' then
    zeit := 'US';
    return zeit;
  elsif lng = 'de' then
    zeit := 'D';
    return zeit;
  else
    zeit := 'fehler';
    return zeit;
  end if;
end;

/
show errors;
set serveroutput on;
select func_datum('de') from dual;


Gebe ich an Stelle des Strings eine Zahl zurück klappt das:

MySQL-Abfrage(n)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
create or replace function  func_datum (lng varchar2)
  return integer is
  zeit integer;
begin
  if lng = 'us' then
    zeit := 1;
    return zeit;
  elsif lng = 'de' then
    zeit := 2;
    return zeit;
  else
    zeit := -1;
    return zeit;
  end if;
end;

/
show errors;
set serveroutput on;
select func_datum('de') from dual;


Habe oben doch nur VARCHAR statt INTEGER....

greetz, nox

Nachtrag:



create or replace function func_datum (lng varchar2)
return varchar2(20) is
zeit varchar2(20);
begin
if lng = 'us' then
zeit := 'US';
return zeit;
elsif lng = 'de' then
zeit := 'D';
return zeit;
else
zeit := 'fehler';
return zeit;
end if;
end;

/
show errors;
set serveroutput on;
select func_datum('de') from dual;


so, habe das mittlerweile rausbekommen, warum das nicht geht.
im ersten roten bereich sind 2 leerzeichen
und der zweite rote bereich gehört dort nicht hin.

greetz, nox
 

nocturne

Kaiser

Dabei seit: 06.01.2005

Beiträge: 1 167

 

2 Zum Seitenanfang

Freitag, 18. Juni 2010, 20:05

Ja selbst oracle11g ist da pissig.
am besten kann man plsql lernen mit postgre (guk in knowledgbase, plpssql muss man bei pg direkt installieren)
die beste sparchunterstüzung für plsql gibt dir übrigends toad oder ems-pgsql-manager.

gewusst wie :D
 

Ähnliche Themen