1
シェルスクリプト関数で次の匿名ブロックを実行しているときにファイルを生成しようとしています。私はその機能の一部だけを再現しています。 コードはです。シェルスクリプトのエコー内のパラメータを表示
echo " sqlplus -s $user_name/$password << EOF"
echo "set serveroutput on"
echo "set echo on"
echo "WHENEVER SQLERROR EXIT SQL.SQLCODE"
echo "declare"
echo " l_workspace_id number;"
echo " l_workspace_name varchar2(100) := '$workspace_name';"
echo " l_application_id number := $application_id;"
echo " l_parsing_schema varchar2(100) := '$user_name';"
echo "begin"
echo " select workspace_id into l_workspace_id"
echo " from apex_workspaces"
echo "where upper(workspace) = upper(l_workspace_name);"
echo ""
echo " apex_application_install.set_workspace_id(l_workspace_id);"
echo " apex_application_install.set_application_id(l_application_id);"
echo " apex_application_install.generate_offset;"
echo " apex_application_install.set_schema(l_parsing_schema);"
echo " apex_application_install.set_application_alias('F' || apex_application_install.get_application_id);"
echo "end;"
echo "/"
echo "@f$APPLICATIONID.sql"
echo "commit;"
echo "exit;"
echo "EOF"
このエコーは別のシェルスクリプトファイルに出力されます。私は.SHファイルをチェックしていたときに問題がある、私は次の出力
sqlplus -s/<< EOF
set serveroutput on
set echo on
WHENEVER SQLERROR EXIT SQL.SQLCODE
declare
l_workspace_id number;
l_workspace_name varchar2(100) := ;
l_application_id number := ;
l_parsing_schema varchar2(100) := ;
私は空白として来ている$を保ったすべての場所を取得しています生成されました。私が間違っているところを教えてくれる人もいますか?
ありがとうございました。