【问题标题】:PLSQL - Convert Char Array To Varchar2PLSQL - 将字符数组转换为 Varchar2
【发布时间】: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


【解决方案1】:

怎么样:

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

虽然我不明白你为什么要这么做!如果我想从字符串中删除最后一个字符,我会这样做:

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

【讨论】:

    猜你喜欢
    • 2020-01-14
    • 2021-09-23
    • 1970-01-01
    • 1970-01-01
    • 2021-03-13
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    • 2011-02-11
    相关资源
    最近更新 更多