首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PL SQL临时表

PL SQL临时表
EN

Stack Overflow用户
提问于 2018-06-05 06:04:14
回答 1查看 325关注 0票数 0

我需要在PL SQL中创建一个键-值对。

我知道Oracle没有与SQL Server相同的临时表概念,但它可以帮助我将拆分的字符串转换为散列、数组或类似的东西来处理它。我的问题是,每次我尝试使用关联数组(按表索引)时,都会得到以下错误:

PLS-00103: Encountered the symbol "REPORTTABTYP" when expecting one of the following: := . ( @ % ;

这是我的关联数组的声明:

代码语言:javascript
复制
create or replace procedure "POST_TX"
(p_report IN VARCHAR2)
is
begin
    TYPE ReportTabTyp IS TABLE OF NUMBER INDEX BY VARCHAR2(64);
    ReportTab ReportTabTyp := ReportTabTyp();

类似地,我尝试在过程中使用EXECUTE IMMEDIATELY来创建一个临时表,但由于临时表不存在,该过程无法编译。

下面是我的完整过程:

代码语言:javascript
复制
create or replace procedure "POST_TX"
(p_report IN VARCHAR2)
is
begin
    TYPE ReportTabTyp IS TABLE OF NUMBER INDEX BY VARCHAR2(64);
    ReportTab ReportTabTyp := ReportTabTyp();

FOR loop_words IN
        (select level as ID, regexp_substr(p_report,'[^ ]+', 1, level) as report
        from dual
        connect by regexp_substr(p_report, '[^ ]+', 1, level) is not null)
    LOOP
        ReportTab(loop_words.ID) := loop_words.report;
    END LOOP loop_words;

    IF (LENGTH(TRIM(TRANSLATE(ReportTabTyp(2).report, ' +-.0123456789', ' '))) IS NULL) THEN
        -- Do stuff
    ELSE
        -- Output error
    END IF;
end;
EN

回答 1

Stack Overflow用户

发布于 2018-06-05 11:26:57

您可以在oracle中创建全局临时表并在您的会话中使用- GTT

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50689407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档