我有一个带有数值的表格,我想将这些值提取到数组中。我可以这样做吗?有没有一个功能可以让我做到这一点?我对pl/sql比较陌生,但我不知道。谢谢!将光标移到数组中
Q
将光标移到数组中
2
A
回答
2
set serveroutput on;
DECLARE
TYPE v_arr IS VARRAY(100) OF NUMBER;
var v_arr;
return_value number;
BEGIN
var:=v_arr();
FOR c1 IN (SELECT ID FROM table_name WHERE ROWNUM<100)
loop
var.EXTEND;
var(var.last):=c1.id;
end loop;
FOR i IN var.FIRST..var.LAST
loop
return_value:=var(i);
dbms_output.put_line(return_value);
end loop;
end;
0
假设你的表是YOUR_TABLE,且列YOUR_COLUMN,你可以使用VARRAY数组如下:
DECLARE
TYPE t_ARR IS VARRRAY(1000000) OF NUMBER;
varr_col T_ARR;
BEGIN
varr_col := t_ARR();
FOR i IN (SELECT YOUR_COLUMN
FROM YOUR_TABLE)
LOOP
varr_col.EXTEND;
varr_col (1) := i.YOUR_COLUMN;
END LOOP;
EXCEPTION
---
END;
这将创建可变大小的数组。每循环FOR LOOP,它都会将数组扩展一个并插入值。因此,就特定列的行数而言,它是灵活的。
0
是的,你可以使用LOOP方法,但我更喜欢BULK COLLECT INTO
。
下面我的小例子:
SET SERVEROUTPUT ON
SET FEEDBACK OFF
CLEAR
DECLARE
TYPE TT_ARR IS TABLE OF NUMBER;
V_NUM_ARR TT_ARR;
BEGIN
V_NUM_ARR := TT_ARR(); --<-- explicit initializing
-- LOOP approach:
FOR L_I IN (SELECT 1 + ROUND(DBMS_RANDOM.VALUE() * 10) COL_1
FROM DUAL
CONNECT BY LEVEL < 20) LOOP
V_NUM_ARR.EXTEND;
V_NUM_ARR(V_NUM_ARR.LAST) := L_I.COL_1;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Collection size : ' || TO_CHAR(V_NUM_ARR.COUNT));
-- BULK COLLECT INTO approach (preferred)
SELECT 1 + ROUND(DBMS_RANDOM.VALUE() * 10) COL_1 BULK COLLECT
INTO V_NUM_ARR
FROM DUAL
CONNECT BY LEVEL < 20;
DBMS_OUTPUT.PUT_LINE('Collection size : ' || TO_CHAR(V_NUM_ARR.COUNT));
END;
/
相关问题
- 1. 将光标移动到CONTENTEDITABLE
- 2. 将光标移到C程序中
- 3. 如何将光标移到tkinter中?
- 4. textarea - 将光标移到光标前并替换它
- 5. 按JButton时将光标移动到JTextField
- 6. 将光标移到图片框
- 7. 将控件移动到光标位置?
- 8. 将光标移到隐藏字段
- 9. 如何将光标移动到EDITTEXT
- 10. 将UITextView光标移动到CGPoint
- 11. 将光标移动到UITextField的开头
- 12. JDBC - 将光标移出insertRow
- 13. MySQL:将光标移入DATE
- 14. MATLAB将鼠标光标移动到特定坐标
- 15. 将光标移动到下一个参数PhpStorm
- 16. 将偏移量定位到光标位置的Javascript偏移量
- 17. 在VMware中移动光标
- 18. 在UITextView中移动光标
- 19. 在Java中移动光标
- 20. 在QTextEdit中移动光标
- 21. 数据库到光标,光标到数组列表和数组列表到名称值对的字符串。
- 22. 如何将光标移动到Dart中的元素?
- 23. 如何将光标移动到终端中的行上?
- 24. 如何在我的ComboBox中将光标移动到左侧?
- 25. 如何将光标移到JScrollPane中的JTextArea的顶部
- 26. 按RETURN时将光标移动到括号和意图中
- 27. 将控制台中的输入光标移动到下一行
- 28. 如何直观地将光标移动到vim中?(不按行)
- 29. 如何将光标移动到RadEditor中的内容结束处?
- 30. 将光标移动到vim中匹配模式的命令
我有一个问题。我试图在我有的程序上使用这段代码,并且得到一个varr_col未初始化的错误。我如何初始化它? – katy
@katy是的,有初始化行丢失。我添加了它。 – Hawk