sql >> データベース >  >> RDS >> Oracle

単一のコマンドラインからのストアドプロシージャ呼び出しで入力パラメータを渡す方法

    あなたが示したもので、あなたはかっこをエスケープする必要があります:

    echo execute some_procedure\(123,234\) | sqlplus username/[email protected]
    

    または、コマンドを二重引用符で囲みます:

    echo "execute some_procedure(123,234)" | sqlplus username/[email protected]
    

    どちらも、シェルがパラセンス自体を解釈しようとするのを停止します。これにより、'syntax error: '(' unexpected または同様のエラー。 Oracleとは実際には何の関係もありません。エコーされた文字列をSQL*Plusにパイプする前に、シェルインタプリタがどのように機能するかを示しています。

    ちなみに、私は通常、この種のことにはヒアドキュメントを使用し、psで表示されないようにコマンドラインにクレデンシャルを配置することは避けます。;例:

    sqlplus -s /nolog <<!EOF
    connect username/[email protected]
    execute some_procedure(123,234)
    exit
    !EOF
    



    1. Mysql最適化ツール

    2. MySql-存在しない場合はテーブルを作成します。それ以外の場合は切り捨てますか?

    3. phpでスペースを使用してmysql列にデータを挿入します

    4. CentOS /RHEL7およびDebianシステムでMariaDB5.5をMariaDB10.1にアップグレードする方法