橘子Jane

导航

Oracle数组的创建和使用

Oracle数组的创建

参考链接:https://blog.51cto.com/baser/1411997

点击查看一维数组示例代码
-- Created on 2014-5-15 by ADMINISTRATOR
DECLARE
    TYPE Arr1 IS VARRAY(10) OF NUMBER;
    Tab_1 Arr1;
    TYPE Arr2 IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
    Tab_2 Arr2;
BEGIN
    -- Test statements here
    Tab_1 := Arr1(1, 3, 4, 6, 3, 2, 8, 5);
    FOR a IN 1 .. Tab_1.Count LOOP
        Dbms_Output.Put_Line(' ' || Tab_1(a));
    END LOOP;
    Tab_2(1) := 101;
    Tab_2(2) := 102;
    Tab_2(3) := 103;
    Tab_2(4) := 104;
    FOR b IN 1 .. Tab_2.Count LOOP
        Dbms_Output.Put_Line(' ' || Tab_2(b));
    END LOOP;
END;

这块得自己补充说明


dbms_output.put_line输出问题

参考链接:https://blog.csdn.net/fanbaodan/article/details/91492192
按照上面链接学习数组的创建时,有put_line但是并没有输出结果。之后查询该方法,按照这个链接说明需要用set serveroutput on; 开启Oracle输出;管用。

Oracle中数据的使用方法

参考链接:http://blog.itpub.net/7416120/viewspace-1004282/

注意一下这句话
execute immediate ssql using iUserNum,sPower;
和他之前的
ssql := 'Insert into TBBCUSERSYSPOWER(USERNUM,SYSPOWERCODE) Values(:Variant1;:Variant2)';

在自己改程序的时候先修改了using之后的两个变量,然后根据报错信息一点一点修改程序(前两步)。在之后根据需要多练习(之后)

  • 在for i in 1 .. tab_1.count loop里添加上面那句execute
  • ssql没有定义→declare后面补充定义:ssql VarChar2(4096)
  • 之后再修改程序的时候在以下几个地方报错:
    • ssql := 'insert into table_name(出错的地方之一) values(出错的地方之二);'
    • execute immediate ssql using tab_1(1),出错的地方之一
    • 以上那几个一般都是少些参数了,多谢参数了,表格的名字缺个字符了啥的
  • 除了这些之外,再将execute放到循环外,试一试,没毛病。

有关Oracle中的定义:define/declare/variable另起笔记

posted on 2021-10-29 13:50  橘子Jane  阅读(417)  评论(0编辑  收藏  举报