0

PythonからSQLコマンドをうまく渡すことができますが、それをSETと組み合わせることができないようです-ヘッダーが必要ないので、SET HEADING OFFを試しています。

私がどこに行くのかを示す4つの試みがあります:

1 - 日付だけでなく、エラー メッセージも取得します。

session = Popen(['sqlplus','-S','user/pass@ORCL'], stdin=PIPE, stdout=PIPE, stderr=PIPE)
sqlCommand = "SET HEADING OFF \n / \n select sysdate from dual;"
session.communicate(sqlCommand)
('SP2-0103: Nothing in SQL buffer to run.\r\n\r\n09-JUL-13\r\n\r\n', '')

2 - SET なしのコマンド:

session = Popen(['sqlplus','-S','user/pass@ORCL'], stdin=PIPE, stdout=PIPE, stderr=PIPE) sqlCommand = "select sysdate from dual;" session.communicate(sqlCommand) ('\r\nSYSDATE\r\n---------\r\n09-JUL-13\r\n\r\n', '')

3 - ワンライナーを試しました:

session = Popen(['sqlplus','-S','user/pass@ORCL'], stdin=PIPE, stdout=PIPE, stderr=PIPE)
sqlCommand = "set heading off \select sysdate from dual;"
session.communicate(sqlCommand)
('SP2-0158: unknown SET option "\\select"\r\n', '')

4 - 2 つの呼び出しに分けようとしました:

session = Popen(['sqlplus','-S','user/pass@ORCL'], stdin=PIPE, stdout=PIPE, stderr=PIPE)
sqlCommand = "select sysdate from dual;"
session.stdin.write('SET HEADING OFF')
session.communicate(sqlCommand)
('SP2-0265: heading must be set ON or OFF\r\n', '')

最後に、これが値を取得する最も簡単な方法ではない場合 (それが私の目標であり、値を 1 つ返すだけです。これは最終的なクエリではありません)、お知らせください。どんなアドバイスでも大歓迎です!

4

1 に答える 1