Выполнение файла SQL * Plus .sql в Python для базы данных Oracle - PullRequest
0 голосов
/ 27 июня 2019

Привет всем, у меня есть этот файл sql:

Student.sql

Select * from student where age > 18;

Delet student_ name , studen_id if age > 18 ;
Commit; 

Использование cx_oracle pip Любая помощь

Ответы [ 2 ]

1 голос
/ 27 июня 2019

Вместо выполнения файла вы можете выполнить запрос, определенный в вашем коде.

import cx_Oracle

dsn_tns = cx_Oracle.makedsn('Host Name', 'Port Number', service_name='Service Name') #if needed, place an 'r' before any parameter in order to address any special character such as '\'.
conn = cx_Oracle.connect(user=r'User Name', password='Personal Password', dsn=dsn_tns) #if needed, place an 'r' before any parameter in order to address any special character such as '\'. For example, if your user name contains '\', you'll need to place 'r' before the user name: user=r'User Name'
query = """
        Select * from student where age > 18;
        DeletE student_ name , studen_id if age > 18 
        """
c = conn.cursor()
c.execute(query) # use triple quotes if you want to spread your query across multiple lines
print('Result', c)
#conn.close()
0 голосов
/ 29 июня 2019

Как отмечалось в других ответах, вы можете одновременно выполнять оператор только с помощью cx_Oracle. Однако вы можете написать оболочку для чтения ваших файлов SQL и выполнения каждого оператора. Это намного проще, если вы ограничиваете синтаксис SQL (особенно в отношении разделителей строк). Например, см. https://github.com/oracle/python-cx_Oracle/blob/master/samples/SampleEnv.py#L118

...