PLSQL - 将 Char 数组转换为 Varchar2
PLSQL - Convert Char Array To Varchar2
我有一个函数可以从 varchar2 中删除最后一个字符,但我需要先将其转换为 char 数组。现在我找不到任何东西可以将它转换回 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;
怎么样:
name := '';
for x in 1..name_char.count loop
name := name || name_char(x);
end loop;
虽然我不明白你为什么要这样做!如果我想从字符串中删除最后一个字符,我会这样做:
name := substr (name, 1, length(name)-1);
我有一个函数可以从 varchar2 中删除最后一个字符,但我需要先将其转换为 char 数组。现在我找不到任何东西可以将它转换回 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;
怎么样:
name := '';
for x in 1..name_char.count loop
name := name || name_char(x);
end loop;
虽然我不明白你为什么要这样做!如果我想从字符串中删除最后一个字符,我会这样做:
name := substr (name, 1, length(name)-1);