使用Upper(substr(首字母大写

时间:2018-10-03 23:32:15

标签: sql plsql

试图让我了解PLSQL

所以我希望名字(fnamn)和姓氏(enamn)的首字母大写。一直在谷歌上搜索很多,找到了关于它的主题,并且已经进行了一段时间的测试,但是没有使它起作用。.在尝试时,只设法将所有字母都放在上面。

到目前为止,这是我的代码;

declare 
cursor c_användare 
is select upper(substr( fnamn,1)) ,Enamn,pnr  
from bilägare; 
v_fnamn bilägare.fnamn%type; 
v_enamn bilägare.enamn%type; 
v_pnr bilägare.pnr%type; 

begin 
if not c_användare%isopen then 
open c_användare; 
end if; 
loop 
fetch c_användare 
into v_fnamn,v_enamn,v_pnr; 
exit when c_användare%notfound; 
dbms_output.put_line(v_Fnamn||', '||v_Enamn||', '||v_pnr||'år'); 
end loop; 
close c_användare; 
end;

2 个答案:

答案 0 :(得分:2)

您需要的是 INITCAP

select initcap('jOHn') as first_name, initcap('smItH') as last_name from dual
union all
select initcap('JÁNOS')             , initcap('KÁDÁR')              from dual
;

FIRST_NAME LAST_NAME 
---------- ----------
John       Smith     
János      Kádár     

答案 1 :(得分:1)

那又怎么样:

UPPER(SUBSTR(fnamn,1,1)) || SUBSTR(fname,2)

SUBSTR()采用基于1的第一个索引,然后采用长度。如果省略长度,则返回整个字段,因此SUBSTR(field,1)field相同。