Python cx_oracle thực thi nhiều câu lệnh

David Karivandan

Theo

ngày 3 tháng 4

·

2 phút đọc

Tiết kiệm

Các truy vấn Python để hoạt động với nhiều phiên bản của Oracle và SQL Server

Các truy vấn Python hoạt động với nhiều phiên bản của Oracle và SQL Server. Trong thử thách này, tôi phải truy vấn Oracle và SQL Server để hợp nhất các bảng của họ
để tạo một bảng SQL Server mới.

##0 Nhập mô-đun Python bắt buộc
nhập os
nhập gấu trúc dưới dạng pd
nhập pyodbc
import cx_Oracle
import datetime

##1 Thiết lập kết nối Oracle
dsn_tns = cx_Oracle. makedsn[‘xxx. tên miền myoracle. com’, ‘1521’, service_name=’UAT’]
conn_oracleserver = cx_Oracle. connect[user=r’admin’, password=’whate#$@$12*vW’, dsn=dsn_tns]

##2 Thiết lập kết nối máy chủ SQL
conn_sqlserver = pyodbc. kết nối [r'Driver = {Máy chủ SQL}; Máy chủ = máy chủ mysql. miền\test;Trusted_Connection=yes;’]

##3 Con trỏ Oracle & SQL Server
oracle_cursor = conn_oracleserver. con trỏ[]
sqlserver_cursor = conn_sqlserver. con trỏ []

##4 Ví dụ về tham gia các Bảng Oracle
oracle_cursor. thực thi ['CHỌN DISTINCT W3. DEFAULT_FIELD TỪ BẢNG1 W1 INNER THAM GIA BẢNG 2 W2 TRÊN W1. FIELD_ID = W2. FIELD_ID INNER THAM GIA BẢNG3 W3 TRÊN W2. FIELD_ID = W3. FIELD_ID’]

##5 Chèn bản ghi từ Oracle vào SQL Server
cho site_id trong oracle_cursor.

##6 Chèn Dữ liệu Oracle vào bảng tạm thời TEMP_TABLE
sqlserver_cursor. thực thi["CHÈN VÀO [[TEMP_TABLE][FIELD_REF,FIELD2] GIÁ TRỊ [?,?]",[str[Value1],'Dữ liệu chuỗi mẫu']]
sqlserver_cursor. cam kết[]

##7 Hợp nhất và nhóm các bảng
selectdistinct = sqlserver_cursor. thực thi ["CHỌN LĨNH VỰC3, Dcat = STUFF [[CHỌN N', ' + LĨNH VỰC4 TỪ [TEMP_TABLE] AS P2 WHERE P2. FIELD_REF = P1. ĐẶT HÀNG FIELD_REF THEO FIELD5 CHO ĐƯỜNG DẪN XML[N’’], 1, 2, N’’] TỪ [TEMP_TABLE] NHƯ NHÓM P1 THEO FIELD5 ĐẶT HÀNG THEO FIELD_REF;”]

##8 Đóng kết nối
conn_oracleserver. close[]
conn_sqlserver. đóng[]

Hy vọng bạn thấy hướng dẫn này hữu ích trong việc học Python và tích hợp cơ sở dữ liệu

Gần đây tôi đã làm việc rất nhiều với Cơ sở dữ liệu Oracle và Python. Mặc dù Oracle là một công ty lớn, nhưng tôi nhận thấy không có một cộng đồng mạnh như vậy để trợ giúp gói của họ bằng Python để xử lý cơ sở dữ liệu, cx_Oracle và tôi thấy tài liệu của họ không tốt lắm

Vì vậy, tôi quyết định thực hiện bài đăng này theo triết lý của mình là viết những bài mà Thiago [tôi] của 1 tháng trước sẽ phải cảm ơn vì

1. Kết nối với cơ sở dữ liệu

Điều đầu tiên cần làm là kết nối với cơ sở dữ liệu của bạn. Trong trường hợp này, có thể bạn có người dùng và mật khẩu. Ngoài ra, bạn nên có tên nguồn dữ liệu. Với tất cả những thứ trong tay, bạn có thể kết nối với cơ sở dữ liệu

Dễ như ăn bánh

2. Thực thi các lệnh SQL

Với cx_Oracle, bạn có thể thực thi bất kỳ lệnh Oracle SQL nào, chọn, chèn, cập nhật, v.v. Để thực hiện các lệnh, bạn phải tạo một con trỏ. Bạn có thể sử dụng cùng một con trỏ để chạy một số lệnh. Tôi chỉ khuyên bạn nên sử dụng kết nối và con trỏ cho từng chức năng trong ứng dụng của mình. Vì vậy, bạn tạo một kết nối và một con trỏ ở đầu hàm của mình và đóng chúng ở cuối

2. 1 Chọn Báo cáo

Điều quan trọng cần đề cập ở đây là [] và các phương thức chỉ hoạt động khi bạn đang thực hiện “chọn”. Sẽ không hợp lý khi sử dụng các phương thức đó khi thực hiện câu lệnh chèn hoặc cập nhật. Ngoài ra, điều quan trọng cần lưu ý là, nếu truy vấn của bạn thực sự lớn, có thể rất chậm vì nó tải dữ liệu được truy vấn vào bộ nhớ

2. 2 câu lệnh Chèn

Nếu bạn muốn chèn dữ liệu từ máy của mình vào bảng trong cơ sở dữ liệu, hãy làm theo quy trình tương tự

Ngoài ra, nếu bạn muốn chèn nhiều hàng, thay vì chạy nhiều lần, tốt hơn nên sử dụng []

Mã này chỉ yêu cầu một lần từ máy khách đến cơ sở dữ liệu thay vì năm chuyến khứ hồi sẽ được yêu cầu cho các lệnh gọi lặp lại tới. Đối với các tập dữ liệu rất lớn, có thể có bộ đệm bên ngoài hoặc giới hạn mạng đối với số lượng hàng có thể được xử lý, do đó có thể phải gọi lại []. Các giới hạn dựa trên cả số lượng hàng đang được xử lý cũng như “kích thước” của mỗi hàng đang được xử lý. Các cuộc gọi lặp lại tới [] vẫn tốt hơn các cuộc gọi lặp lại tới

Bây giờ, nếu bạn đang chèn kết quả của một câu lệnh select, thì tốt hơn là tạo một câu lệnh đơn lẻ và thực hiện nó sau đó thực thi một câu lệnh select, sau đó chèn bằng. Điều này đặc biệt đúng nếu kết quả từ câu lệnh select lớn

3. Sử dụng tham số

Một tính năng rất quan trọng là có thể sử dụng các tham số trong các lệnh SQL của bạn. cx_Oracle cung cấp một cách đơn giản để làm điều đó

Có nhiều cách khác để truyền tham số cho các lệnh SQL trong cx_Oracle nhưng tôi nghĩ đây là cách tốt nhất, vì vậy tôi sẽ tiếp tục với nó

4. Đa xử lý với cx_Oracle

Khi tôi làm việc với cx_Oracle, đây chắc chắn là điều khó thực hiện nhất. Trong vấn đề của tôi, tôi muốn thực hiện một số lần chèn vào một số bảng và tôi muốn càng nhanh càng tốt. Ngoài ra, thứ tự chèn không quan trọng, vì vậy nó phù hợp để sử dụng đa xử lý

Điều chính ở đây là tạo kết nối bên trong quy trình. Mỗi công nhân trong nhóm quy trình cần có kết nối riêng mà nó tự thiết lập

Hãy ghi nhớ điều đó, việc sử dụng đa xử lý với cx_Oracle khá dễ dàng

Phần kết luận

Tôi thực sự không nghĩ rằng tôi đã thể hiện những thứ phức tạp ở đây. Tôi gặp khó khăn trong việc làm cho ứng dụng của mình hoạt động vì không có nhiều câu hỏi trên Stackoverflow về cx_Oracle và tôi không nghĩ tài liệu cx_Oracle là tài liệu tốt nhất hiện có

Làm cách nào để sử dụng cx_Oracle?

Các bước kết nối Python với Oracle bằng cx_Oracle connect .
Bước 1. Cài đặt gói cx_Oracle. Nếu bạn chưa làm như vậy, hãy cài đặt gói cx_Oracle. .
Bước 2. Truy xuất thông tin kết nối. Tiếp theo, lấy thông tin kết nối. .
Bước 3. Kết nối Python với Oracle bằng cx_Oracle connect

Làm cách nào để lấy dữ liệu từ cơ sở dữ liệu Oracle bằng Python?

Trăn. Đọc dữ liệu từ cơ sở dữ liệu Oracle .
Cài đặt gói. Nếu bạn chưa cài đặt gói trong môi trường Python của mình, hãy cài đặt gói đó bằng lệnh sau. cài đặt pip oracledb --upgrade. .
Kết nối với cơ sở dữ liệu Oracle. .
Đọc dữ liệu dưới dạng pandas DataFrame. .
Kết nối với máy khách gốc của Oracle. .
Người giới thiệu

Python cx_Oracle là gì?

cx_Oracle là mô-đun mở rộng Python cho phép truy vấn và cập nhật cơ sở dữ liệu Oracle bằng API cơ sở dữ liệu chung cho tất cả các mô-đun truy cập cơ sở dữ liệu .

Làm cách nào để chạy truy vấn Oracle trong Python?

Python cx_Oracle trên Windows .
Cài đặt cơ sở dữ liệu Oracle. Nếu bạn chưa có quyền truy cập vào Cơ sở dữ liệu Oracle, hãy tải xuống và cài đặt Cơ sở dữ liệu Oracle XE theo các hướng dẫn sau. .
Tạo người dùng cơ sở dữ liệu. .
Cài đặt Python. .
Cài đặt cx_Oracle. .
Tạo một ứng dụng Python. .
Chạy ứng dụng Python

Chủ Đề