dba ユーザーとしてデータベースに接続し、ユーザー数をカウントできるスクリプトを作成しようとしています。最終的には、スクリプトを更新して、ユーザーが存在するかどうかを確認したいと考えています。セッションを終了します。ユーザーをドロップします。しかし、現時点では、スクリプトが実行されていることを確認するために、ユーザーのカウントから始めたいと考えています。
しかし、DBに接続していないようです。
echo
echo "3> Resetting databases..."
read -p "Enter Database Server Hostname: " db_host
read -p "Enter Database SID: " db_sid
read -p "Enter DBA User: " dba_usr
read -p "Enter DBA password: " dba_pwd
read -p "Enter Schema1 owner: " usr1
read -p "Enter alternate user1 " usr2
read -p "Enter alternate user2 " usr3
sqlplus -s $dba_usr/$dba_pwd@$db_sid << EOF
set timing off
set feedback off
set serveroutput off
DECLARE
usr1 varchar2(10) := '$usr1';
usr2 varchar2(10) := '$usr2';
usr3 varchar2(10) := '$usr3';
total INTEGER;
TYPE user_arr IS VARRAY(3) OF VARCHAR2(20);
users user_arr;
BEGIN
dbms_output.put_line('Entered inside this block...');
users := user_arr( upper(usr1),
upper(usr2),
upper(usr3) );
total := users.count;
FOR i in 1 .. total LOOP
dbms_output.put_line('Usernames are: '|| users(i));
END LOOP;
END;
/
EOF
出力は次のようになります。
3> Resetting databases...
Enter Database Server Hostname: HOSTNAME
Enter Database SID: SID
Enter DBA User: DBA
Enter DBA password: pwd
Enter Schema1 owner: user1
Enter alternate user1 user2
Enter alternate user2 user3
入力値を取得した後は、何もしません。何がうまくいかなかったのかわかりません。修正しようとしましたが、できませんでした。誰でも問題を理解できますか?ありがとうございました!