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另起笔记
橘子Jane