Hướng dẫn how do you call a function in python pl sql? - Làm thế nào để bạn gọi một hàm trong python pl sql?

Tóm tắt: Trong hướng dẫn này, bạn sẽ tìm hiểu cách sử dụng Cursor.callfunc() để gọi chức năng được lưu trữ PL/SQL từ chương trình Python.: in this tutorial, you will learn how to use the Cursor.callfunc() to call a PL/SQL stored function from a Python program.

Thiết lập chức năng PL/SQL

Tuyên bố sau đây tạo ra một chức năng được lưu trữ mới gọi là get_revenue() trả về doanh thu bán hàng của một nhân viên bán hàng trong một năm cụ thể.

CREATE OR REPLACE FUNCTION get_revenue( salesman_code NUMBER, year NUMBER) RETURN NUMBER IS l_revenue NUMBER; BEGIN SELECT SUM(quantity*unit_price) INTO l_revenue FROM orders INNER JOIN order_items USING (order_id) WHERE salesman_id = salesman_code AND EXTRACT(YEAR FROM order_date) = YEAR; RETURN l_revenue; END;

Code language: SQL (Structured Query Language) (sql)

Khối ẩn danh này kiểm tra chức năng được lưu trữ get_revenue() có được doanh thu bán hàng của ID nhân viên bán hàng 54 trong năm 2017:

SET SERVEROUTPUT ON; DECLARE l_revenue NUMBER; BEGIN l_revenue := get_revenue(54, 2017); dbms_output.put_line(l_revenue); END;

Code language: SQL (Structured Query Language) (sql)

Đây là đầu ra:

1160350.79

Code language: Python (python)

Để thực hiện chức năng được lưu trữ PL/SQL, bạn sử dụng phương thức

SET SERVEROUTPUT ON; DECLARE l_revenue NUMBER; BEGIN l_revenue := get_revenue(54, 2017); dbms_output.put_line(l_revenue); END;

Code language: SQL (Structured Query Language) (sql)
0. Mã sau đây minh họa cách gọi chức năng được lưu trữ get_revenue() và hiển thị doanh thu của nhân viên bán hàng 54 trong năm 2017:

import cx_Oracle import config as cfg def get_revenue(salesman_id, year): """ Get revenue by salesman in a specific year :param salesman_id: :param year: :return: the revenue """ revenue = None try: # create a connection to the Oracle Database with cx_Oracle.connect(cfg.username, cfg.password, cfg.dsn, encoding=cfg.encoding) as connection: # create a new cursor with connection.cursor() as cursor: # call the function revenue = cursor.callfunc('get_revenue', float, [salesman_id, year]) except cx_Oracle.Error as error: print(error) return revenue if __name__ == '__main__': sales_revenue = get_revenue(54, 2017) print(sales_revenue) # 1160350.79

Code language: Python (python)

Trong ví dụ này:

Đầu tiên, thiết lập kết nối với cơ sở dữ liệu Oracle bằng cách gọi phương thức

SET SERVEROUTPUT ON; DECLARE l_revenue NUMBER; BEGIN l_revenue := get_revenue(54, 2017); dbms_output.put_line(l_revenue); END;

Code language: SQL (Structured Query Language) (sql)
2 với các tham số được cung cấp bởi mô -đun

SET SERVEROUTPUT ON; DECLARE l_revenue NUMBER; BEGIN l_revenue := get_revenue(54, 2017); dbms_output.put_line(l_revenue); END;

Code language: SQL (Structured Query Language) (sql)
3:

username = 'OT' password = '' dsn = 'localhost/pdborcl' port = 1512 encoding = 'UTF-8'

Code language: Python (python)

Thứ hai, tạo một đối tượng

SET SERVEROUTPUT ON; DECLARE l_revenue NUMBER; BEGIN l_revenue := get_revenue(54, 2017); dbms_output.put_line(l_revenue); END;

Code language: SQL (Structured Query Language) (sql)
4 mới bằng phương thức

SET SERVEROUTPUT ON; DECLARE l_revenue NUMBER; BEGIN l_revenue := get_revenue(54, 2017); dbms_output.put_line(l_revenue); END;

Code language: SQL (Structured Query Language) (sql)
5.

Thứ ba, hãy gọi hàm được lưu trữ get_revenue() bằng phương thức Cursor.callfunc():

cursor.callfunc('get_revenue', float, [salesman_id, year])

Code language: Python (python)

Trong phương thức Cursor.callfunc(): Đối số đầu tiên là tên hàm được lưu trữ, đối số thứ hai là loại giá trị được trả về và đối số thứ ba là danh sách các đối số được truyền cho hàm được lưu trữ.

Mã sau đây kiểm tra chức năng get_revenue() với nhân viên bán hàng 54 và năm 2017:

sales_revenue = get_revenue(54, 2017) print(sales_revenue) # 1160350.79

Code language: Python (python)

Trong hướng dẫn này, bạn đã học được cách sử dụng phương thức Cursor.callfunc() để gọi hàm được lưu trữ PL/SQL trong Python.

Hướng dẫn này có hữu ích không?

Làm thế nào để bạn gọi một chức năng trong PL SQL?

Để gọi một hàm, bạn phải chuyển các tham số cần thiết cùng với tên chức năng và nếu hàm trả về giá trị thì bạn có thể lưu trữ giá trị trả về ...
Tạo hoặc thay thế chức năng tổng thể ..
Số trả về là ..
Tổng số (2): = 0 ;.
BEGIN..
Chọn Đếm (*) vào tổng số ..
Từ khách hàng;.
Trả về tổng số ;.

Làm thế nào để bạn gọi một chức năng trong PL SQL Developer?

Về việc gọi một hàm, bạn có thể sử dụng khối PL/SQL, với các biến: SQL> Tạo hoặc thay thế hàm f (n trong số) Số trả về là 2 BẮT ĐẦU 3 Trả về n * 2;4 kết thúc;5 / Chức năng được tạo ra.SQL> khai báo 2 số vượt trội;3 Bắt đầu 4 Chọn F (10) 5 đến mức 6 so với Dual;7 - 8 dbms_output.use a PL/SQL block, with variables: SQL> create or replace function f( n IN number) return number is 2 begin 3 return n * 2; 4 end; 5 / Function created. SQL> declare 2 outNumber number; 3 begin 4 select f(10) 5 into outNumber 6 from dual; 7 -- 8 dbms_output.

Làm thế nào để bạn gọi một chức năng được lưu trữ trong Python?

Để gọi một quy trình được lưu trữ từ ứng dụng Python, hãy sử dụng chức năng IBM_DB.CallProc.Quy trình mà bạn gọi có thể bao gồm các tham số đầu vào (IN), tham số đầu ra (ra) và tham số đầu vào và đầu ra (INOUT).use ibm_db. callproc function. The procedure that you call can include input parameters (IN), output parameters (OUT), and input and output parameters (INOUT).

Làm cách nào để gọi một thủ tục được lưu trữ trong Oracle bằng Python?

Gọi thủ tục PL/SQL trong ví dụ Python trước tiên, kết nối với cơ sở dữ liệu Oracle bằng cách gọi phương thức cx_oracle.connect () với các tham số được cung cấp bởi mô -đun cấu hình.Thứ hai, tạo một đối tượng con trỏ mới bằng cách gọi kết nối.phương thức con trỏ ().connect to the Oracle Database by calling the cx_Oracle. connect() method with the parameters provided by the config module. Second, create a new Cursor object by calling the Connection. cursor() method.