問題タブ [sqlplus]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - (wx)python を使用した外部プログラムのログ出力
Oracle exp/imp コマンドを使用し、sqlplus を介して SQL スクリプトを開始するための GUI を作成しています。サブプロセス クラスを使用すると、コマンドを簡単に起動できますが、追加の機能が必要です。wxPython GUI を使用するときにコマンド プロンプトを削除したいのですが、exp/imp コマンドの出力を表示する方法が必要です。
私はすでにこれらの2つの方法を試しました:
これらの方法の 1 つ (どの方法を忘れたか) を使用して、exp/imp の出力を実際に取得しましたが、コマンドが終了した後でのみ、これらの実行時間が長くなる可能性のある操作中に頻繁に更新する必要があるため、これはまったく価値がありません。また、sqlplus は、エラーが発生したときに何らかの入力を必要とするため、さらに多くの問題を引き起こしました。これが発生すると、python はプロセスが終了するのを待ちますが、ユーザーにはプロンプトが表示されないため、待機時間や何をすべきかわかりません...
私が欲しいのは、標準のコマンドラインで表示できるすべてのものを出力するラッパーです。これをファイルに記録し、wxPython コントロール内に表示したいと考えています。
このページのコードも試しました: http://code.activestate.com/recipes/440554/ しかし、これも出力を読み取ることができません。この回答の OutputWrapper も機能しません: wxPython アプリケーションからすべての例外をキャプチャするにはどうすればよいですか?
どんな助けでも大歓迎です!
編集:
サブプロセスは出力をフラッシュしていないようです。私はすでに .readline() で試しました。
私のツールは Windows と UNIX で実行する必要があるため、Windows バージョンがない場合、pexpect は解決策になりません。また、exp、imp、および sqlplus の機能全体を再構築する必要があるため、cx_oracle を使用するのは非常にやり過ぎです。
sql - Oracle SQLPlus で SQL インジェクションを防ぐ方法は?
もちろん、JDBC/ODBC を使用している場合は、バインド変数と準備済みステートメントを使用して SQL インジェクションを防ぐことができます。しかし、最終的に Oracle SQLPlus を呼び出すバッチ プロセスにデータが渡される場合、SQL インジェクションを防ぐ方法はありますか? 例えば:
クエリ.sql:
したがって、SQLPlus からこのスクリプトを呼び出すと、次のようになります。
次の出力が得られます。
ご覧のとおり、SQLPlus コマンド ライン パラメータは単純なマクロ置換を使用しています。私が見逃している別の方法はありますか?それ以外の場合、これが悪用されるのを防ぐにはどうすればよいですか?
oracle - コマンドラインから sql plus を介して単一のコマンドを発行するにはどうすればよいですか?
SQL Plus を使用すると、次のように、コマンド ラインから "@" 演算子を使用してスクリプトを実行できます。
しかし、個別のスクリプト ファイル全体を使用せずに、同様の構文で単一のコマンドを実行することは可能でしょうか? 次のように:
2行の「.sql」ファイルを大量に生成せずに、コマンドを実行するだけのバッチファイルを書きたいので、これに興味があります。
.net - Oracle SQLPLUS への .Net インターフェイスはありますか?
SQL スクリプトの実行を制御する自動化を開発しています。スクリプトはSQL*PLUSを介して実行され、 PL/SQL呼び出しが含まれています (したがって、 ODP.NETを介してスクリプトを実行することはできません)。
SQL*PLUSへの.NETインターフェイスがあるかどうか疑問に思っていましたか? もしそうなら、誰かがそれを使用しましたか?
sql - SELECT DISTINCT は結果の並べ替えを意味しますか
SELECT クエリに DISTINCT を含めることは、結果セットを並べ替える必要があることを意味しますか?
そうではないと思いますが、信頼できる回答(Webリンク)を探しています。
次のようなクエリがあります。
オラクルでは、結果は異なりますが、ソート順ではありません。Jet/MS-Access では、結果が確実にソートされるようにするために、追加の作業が行われているようです。この場合、オラクルは仕様に従っており、MS Accessはそれを超えていると想定しています。
foo
また、 (特に指定がない限り)並べ替える必要があるというヒントをテーブルに与える方法はありますか?
oracle - sqlplus が接続しないのはなぜですか?
私の目標は、OS X マシンから Oracle 9i インスタンスに接続することです。こちらのセットアップ手順に従いましたが、(最終的には) エラーなしで完了しました。ただし、sqlplus が接続できないことがわかりました。
ちょっと待って...
私のtnsnames.ora
ファイル...
たぶん、設定する必要があるenv変数がありますか?
アップデート
DB ホスト マシンに問題なく ping を実行できます。
試した...
わかった...
tnsnames.oraSID
の代わりに使用してみました。SERVICE_NAME
結果は変わらなかったようです。に戻しましたSERVICE_NAME
。
sqlnet.log の最後の 2 つのエントリ...
部分的な回答
回答ありがとうございます。彼らは役に立ちました。DNSに問題があることがわかりました。ホスト名でpingできたので、うまくいくはずだと思いました。IPアドレスも試しました。このOS Xマシンで動作するには、内部「10.1.xx」IPアドレスが必要であることが判明しました(ただし、Windowsではホスト名で問題ありません)。
この時点で、接続できます...
ただし、これらの値を tnsnames.ora に入力しても、これはまだ機能しません...
...
必要なものに近いサンプルの tnsnames.ora ファイルを検索し、その内容をファイルにコピーしました。パラメータを変更したところ、すべてが機能するようになりました。なぜ私のものが機能しなかったのかわかりません。
sql - ORACLE がコマンドで連続した改行文字を許可しないのはなぜですか?
私は書きます:
ファイル「a.sql」に保存します。
次に、SQL*Plus コマンド プロンプトで「@a」と入力して実行すると、「ssn」で始まる行がコマンドとして認識されず、無視されることがわかります。
私が収集したものから、複数の改行文字が連続して発生した場合、sqlplus はコマンドを終了するようです。これは正確な声明ですか?もしそうなら、これが必要かどうか/なぜこれを選択するのか誰かが知っていますか?
oracle - Oracle、SQL-Plusファイルx.sql内からPL / SQLの問題を呼び出すと、my_functionは「関数ではない可能性があります」と表示されます
非常に単純です。関数を作成するCREATE OR REPLACE FUNCTION MD5_ENCODE
とスムーズに実行されますが、PL/SQLとしてSQL-Plusブロック内に匿名で留まる場合->「関数ではない可能性があります」エラー。
このOracleの「機能」とは何ですか?