【发布时间】:2017-09-01 16:07:08
【问题描述】:
我有一个从 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;
【问题讨论】:
-
为什么是
char数组?普通字符串通常更容易使用。 PL/SQL 在if之后也没有双括号语法要求,因为它有then。你可以写if x = length(name) then。虽然你可能一开始就可以锻炼length(name)。
标签: arrays oracle plsql char varchar2