2017-09-01 105 views
0

我有一个函数可以从varchar2中删除最后一个字符,但我需要先将它转换为char数组。现在我找不到任何东西将其转换回varchar2。PLSQL - 将字符数组转换为Varchar2

我的功能:

DECLARE 
    TYPE CHAR_ARRAY IS TABLE OF CHAR(1) INDEX BY PLS_INTEGER; 
    NAME VARCHAR2(100) := '&vname'; 
    NAME_CHAR CHAR_ARRAY; 
BEGIN 
    FOR X IN 1..LENGTH(NAME) LOOP 
     IF((X = LENGTH(NAME))) THEN 
      NAME_CHAR(X) := ''; 
     ELSE 
      NAME_CHAR(X) := SUBSTR(NAME, X , 1); 
     END IF; 
    END LOOP; 
    -- Now I need to convert it back to varchar2 
END; 
+0

为什么'char'数组?普通字符串通常更容易处理。 'if'后面的PL/SQL也没有双括号的语法要求,因为它有'then'。你可以直接写'if x = length(name)then'。虽然你可能在开始时就可以计算出'length(name)'。 –

回答

1

如何:

name := ''; 
for x in 1..name_char.count loop 
    name := name || name_char(x); 
end loop; 

虽然你为什么会做任何的这个我摸不透!如果我想从字符串中删除最后一个字符,我会这样做:

name := substr (name, 1, length(name)-1);