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