В този урок ще научите как да извикате функцията на Oracle в Python. Давам пример с помощта на cx_Oracle library callfunc функция в програмата Python. Следват подробностите за синтаксиса и примерните програми.
Синтаксис на функцията CX_Oracle callfunc
cursor.callfunc('oracle_function_name', variable_to_hold_return_value, [argument_1, argument_2, ...])
Пример за функция на база данни на Oracle
Следната функция на Oracle ще приеме два числови аргумента, за да изчисли процента на първо число по второ число.
СЪЗДАДЕТЕ ИЛИ ЗАМЕНЕТЕ ФУНКЦИЯ calc_percentage (p_1 В БРОЙ, p_2 В БРОЙ)ВЪРНЕТЕ NUMBERISn_pct NUMBER :=0;BEGINАКО p_1 НЕ Е NULLTHENn_pct :=(p_1 * p_2) / 100;END IF;t/RETURNn;END_pc;END_pc; /предварително>Пример за извикване на Oracle функция в Python
Програмата на Python по-долу ще извика горната функция на Oracle, като предаде n_1 като първи параметър и n_2 като втори параметър. Също така променливата n_pct Number се използва за задържане на връщаната стойност от функция.
import cx_Oraclecon =cx_Oracle.connect('scott/tiger@localhost/orcl')cur =con.cursor()n_pct =cur.var(cx_Oracle.NUMBER)n_1 =80n_2 =20cur.callfunc('calc_percentage ', n_pct , [n_1 , n_2 ])print (str(n_2)+"%", " Процент от ", n_1, " е:", n_pct.getvalue())cur.close()con.close()Изход
20% процента от 80 е:16.0Вижте също:
- Как да извика съхранена процедура на Oracle в Python?
-
Функция за разделяне в Oracle на стойности, разделени със запетая, с автоматична последователност
-
ORA-04021:възникна изчакване при изчакване за заключване на обекта
-
Как мога да комбинирам няколко реда в списък, разделен със запетая в Oracle?
-
Пример за израз на Oracle FOR LOOP SELECT
-
LISTAGG в Oracle за връщане на различни стойности