从动态输入中获取价值

时间:2018-03-27 10:22:56

标签: plsql oracle-apex

我正在尝试使用带有PL / SQL的Oracle Apex中的分支从我的应用程序中获取动态创建字段的值。我试图像:NAME的其他字段一样获取它,但我没有运气。我的分支代码看起来像这样,

DECLARE
    tabs    INTEGER := :P2_CREATE_TABS;
    lines    INTEGER := :P2_LINES;
    counter NUMBER := 1;
    content VARCHAR2(100);
BEGIN
    INSERT INTO EmailContent (CUSTOMERNAME, ORGANISATIONNUMBER, CONTACTNUMBER, EMAIL)
    VALUES (:P2_CUST_NAME, :P2_ORG_NUM, :P2_CONTACT_NUM, :P2_EMAIL);    
    FOR tab_counter IN 1 .. tabs
    LOOP
        FOR line_count IN 1 .. lines
        LOOP
            FOR element_count IN 1 .. 3
            LOOP
                IF(counter < 10) THEN
                    content := :F||0||counter;
                    INSERT INTO DynamicContent (ID_EMAIL, ID_TAB, ID_LINE, CONTENTVALUE)
                    VALUES
                        (
                            (SELECT COUNT(*) FROM EmailContent),
                             tab_counter,
                             line_count,
                             content
                        );
                    counter := counter + 1;
                ELSE
                    content := :F||counter;
                    INSERT INTO DynamicContent (ID_EMAIL, ID_TAB, ID_LINE, CONTENTVALUE)
                    VALUES
                        (
                            (SELECT COUNT(*) FROM EmailContent),
                             tab_counter,
                             line_count,
                             content
                        );
                    counter := counter + 1;
                END IF;
            END LOOP;
        END LOOP;
        counter := 0;
    END LOOP;
END;

字段是使用APEX_ITEM.TEXT(...创建的,其p_idx生成F01,F02,...,F50,这就是为什么我尝试使用content := :F||0||counter;和{{ 1}}。

通过这个结果,我的数据库中填充了值01,02,03,...,00,01 ......等等。我想从名为FXX的输入中获取值。

提前致谢!

1 个答案:

答案 0 :(得分:0)

谢谢@romeuBraga

由于字段是使用APEX_ITEM.TEXT(...动态创建的,因此p_idx生成范围为01-50的F,这可以用作数组。可以像APEX_APPLICATION.G_F01(i);一样访问。