??Python???Oracle?????????
?????ryan1985 ???????[ 2016/7/18 13:46:12 ] ????????????? ????
??????oracle?д?????????????????????????index table?????г??????????????????????????????У???????????????????
??????????????????????????varchar2?????????????????????????????clob??
??????????scott?????????emp???????????????????
1 create or replace function test_query_func(dept varchar2)
2 return clob
3 is
4 type test_record is record
5 (rec_empno emp.empno%type??
6 rec_ename emp.ename%type??
7 rec_job emp.job%type??
8 rec_sal emp.sal%type);
9 type test_query_arr is table of test_record index by binary_integer;
10 cursor cur is select empno?? ename?? job?? sal from emp where deptno = dept;
11 test_query test_query_arr;
12 i integer := 0;
13 ss varchar2(200) := '';
14 res clob := '[';
15 begin
16 for c in cur loop
17 i := i + 1;
18 test_query(i) := c;
19 end loop;
20 for q in 1..test_query.count loop
21 ss := '(''' || test_query(q).rec_empno || '''?? ''' || test_query(q).rec_ename || '''?? ''' || test_query(q).rec_job || '''?? ''' || test_query(q).rec_sal || ''')';
22 if q < test_query.count then
23 ss := ss || '??';
24 end if;
25 res := res || ss;
26 end loop;
27 res := res || ']';
28 return res;
29 end;
??????????pl/sql developer???????????????????
????1 begin
????2 dbms_output.put_line(test_query_func('30'));
????3 end;
????????????
????[('7499'?? 'ALLEN'?? 'SALESMAN'?? '1600')??('7521'?? 'WARD'?? 'SALESMAN'?? '1250')??('7654'?? 'MARTIN'?? 'SALESMAN'?? '1250')??('7698'?? 'BLAKE'?? 'MANAGER'?? '2850')??('7844'?? 'TURNER'?? 'SALESMAN'?? '1500')??('7900'?? 'JAMES'?? 'CLERK'?? '950')]
??????????????????python???б??а?????????????????
??????????python?е??????python????oracle???cx_Oracle??
1 import cx_Oracle as ora;
2 con = ora.connect('scott/scott@oradb');
3 cur = con.cursor();
4 cur.execute('select test_query_func(30) from dual');
5 res = cur.fetchall()[0][0].read();
6 cur.close();
7 con.close();
8 data = eval(res);
9 import pandas as pd;
10 df = pd.DataFrame(data?? columns = ['empno'?? 'ename'?? 'job'?? 'sal']);
11 print(df)
????????oracle?к???????????????????DataFrame???????
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11