2
A
回答
1
這是一個強力方法。有可能是一種更優雅的方式,或者至少會減少打字。本例使用五列,而不是100
DECLARE
-- Change VARCHAR2(10) in the next line to your col_1 .. col_100 type
TYPE My100Array IS TABLE OF VARCHAR2(10) INDEX BY PLS_INTEGER;
myVals My100Array;
indx NUMBER;
BEGIN
SELECT 'These', 'are', 'the', 'column', 'values'
INTO myVals(1), myVals(2), myVals(3), myVals(4), myVals(5)
FROM DUAL;
FOR INDX IN 1..5 LOOP
DBMS_OUTPUT.PUT_LINE(indx || ': ' || myVals(indx));
END LOOP;
END;
這裏的輸出,當我運行此:
1: These
2: are
3: the
4: column
5: values
當然,這將是一個有點困難有100列,但一旦你得到查詢順便說一下,你會擁有你想要的陣列。
2
你可以只選擇他們喜歡的:
SQL> create type foo as table of number; -- or varray, as you wish.
2/
Type created.
SQL> select foo(l.a, l.b, l.c) foo from your_tab l;
FOO
-----------------
FOO(1, 2, 3)
等。
0
又如:
DECLARE
CURSOR c_data IS
SELECT * FROM scott.emp; -- replace emp table with your_table
TYPE t_source_tab IS TABLE OF scott.emp%ROWTYPE;
l_tab t_source_tab;
BEGIN
SELECT * BULK COLLECT INTO l_tab FROM scott.emp;
-- display values in array --
FOR i IN l_tab.FIRST ..l_tab.LAST
LOOP
DBMS_OUTPUT.PUT_LINE (l_tab(i).hiredate ||chr(9)||l_tab(i).empno ||chr(9)||l_tab(i).ename);
END LOOP;
END;
/
0
聽起來像你想UNPIVOT數據..
不幸UNPIVOT
僅在11g中添加(不是10.2) 你可以手動unpivot,但其他解決方案之一會更好地工作,我認爲。
不過,如果你是在11g或以上版本,你可以試試這個
create table my_table (col1 number,col2 number, col3 number);
Table MY_TABLE created.
insert into my_table values (4,5,6);
1 row inserted.
select * from my_table;
COL1 COL2 COL3
---------- ---------- ----------
4 5 6
select val from my_table unpivot (val for col in (col1,col2,col3));
VAL
----------
4
5
6
從那裏是微不足道的,選擇到一個單柱陣列
DECLARE
CURSOR c_data IS
select val from my_table unpivot (val for col in (col1,col2,col3));
TYPE t_source_tab IS TABLE OF c_data%ROWTYPE;
l_tab t_source_tab;
BEGIN
open c_data;
fetch c_data bulk collect into l_tab;
close c_data;
-- display values in array --
FOR i IN l_tab.FIRST ..l_tab.LAST
LOOP
DBMS_OUTPUT.PUT_LINE (l_tab(i).val);
END LOOP;
END;
/
相關問題
- 1. 選擇行單元格作爲新列
- 2. 如何選擇多行作爲單列
- 3. 基於多個選擇元素和單個選擇元素的組合篩選
- 4. 選擇多個行作爲數組
- 5. 選擇單列多行分爲單列
- 6. Angularjs中的單元素選擇和多元素選擇
- 7. 選擇多個數組元素
- 8. 數組操作 - 隨機選擇元素
- 9. 選擇元素時選擇元素的奇怪行爲
- 10. Javascript:將數組元素放入選擇框中作爲選項
- 11. 選擇元素的元組
- 12. 選擇更多的行作爲列
- 13. 選擇元素在數組中有更多重複元素C
- 14. 在另一個數組中的元素爲真的數組中選擇元素
- 15. DOM元素數組上的jQuery選擇行爲
- 16. 選擇加入多行分爲單列
- 17. 從1D數組中選擇2個元素到多維數組
- 18. 選擇元素沒有「選項」數組
- 19. 多重選擇表單元素
- 20. grails g:選擇傳遞動態表單元素作爲參數
- 21. 從組中選擇最大元素列
- 22. 選擇行的數據作爲列
- 23. $(this)作爲元素的jQuery選擇器
- 24. 造型元素作爲選擇的onclick
- 25. 選擇數組中的任何元素
- 26. 選擇數組內的所有元素
- 27. 選擇嵌套數組中的元素
- 28. 從列表中選擇多個元素
- 29. 一次選擇多個陣列元素
- 30. 解組XML模式選擇元素,以單獨的列表
由於SQL本身並處理數組什麼編程你有什麼語言? – 2013-03-05 14:51:19