一个小问题

So_CooL 2010-11-09 10:19:51
请帮我把下面的函数改写成这样的功能
如UserCode ='123456'
转换成Ascii的 49,50,51,52,53,54

create or replace function convertPwdToAscII(userCode in varchar2(20))
return varchar2
is
Begin
strPwd varchar2(20);
split varchar2(100);
select user_pass into strPwd from tuser where user_code = userCode;
int i := 0;
while i < length(@strPwd)
select ascii(substr(strPwd,0,i)) into split from dual
split = split + ",";
end loop;
return split;
End;
...全文
87 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hx_java 2010-11-09
  • 打赏
  • 举报
回复
2楼好强.. 膜拜高手
YY_MM_DD 2010-11-09
  • 打赏
  • 举报
回复

SQL>
SQL> create or replace function convertPwdToAscII(userCode in varchar2)
2 return varchar2 is
3 strPwd varchar2(20);
4 splits varchar2(100);
5 i number;
6 Begin
7 select user_pass into strPwd from tuser where user_code := userCode;
8 while i < length(strPwd) loop
9 select ascii(substr(strPwd, 0, i)) into splits from dual;
10 splits := splits || ",";
11 end loop;
12 return splits;
13 End;
14 /
lnuwhy 2010-11-09
  • 打赏
  • 举报
回复
create or replace function convertPwdToAscII(userCode in varchar2(20))
return varchar2
is
Begin
strPwd varchar2(20);
split varchar2(100);
select user_pass into strPwd from tuser where user_code = userCode;
int i := 0;
while i < length(@strPwd)
select ascii(substr(strPwd,i,1)) into split from dual
split = split + ",";
i:=i+1;
end loop;
return split;
End;
gelyon 2010-11-09
  • 打赏
  • 举报
回复

--你的很多错误,这里我改了,有些事你自己的逻辑,你再增加进去
--下面是单纯的求ascii

create or replace function convertPwdToAscII(userCode in varchar2) --参数不需要指定长度
return varchar2
is
result varchar2(100); --变量申明写在这里!
split VARCHAR2(100);
i number := 0;

Begin
--select user_pass into strPwd from tuser where user_code = userCode;
for i IN 1.. length(userCode) LOOP
select ascii(substr(userCode,i,1)) into split from dual; --这里变量要用substr(str,i,1) 并且语句结束用逗号!
result := result||split || ','; --这里又错!
end loop;
return RTrim(result,',');
End;

测试:
SELECT convertPwdToAscII('123456') FROM dual;

结果:
CONVERTPWDTOASCII('123456')
-------------------
49,50,51,52,53,54

ngx20080110 2010-11-09
  • 打赏
  • 举报
回复

create or replace function convertPwdToAscII(userCode in varchar2)
return varchar2
is
strPwd varchar2(20);
split varchar2(100);
i pls_integer := 0;
Begin
select user_pass into strPwd from tuser where user_code = userCode;
while i < length(strPwd) loop
select ascii(substr(strPwd,0,i)) into split from dual;
split := split + ",";
end loop;
return split;
End;

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧