シェル スクリプトを使用して、Oracle テーブルにレコードを挿入したいと考えています。
どうやってやるの?
UNIXコマンドプロンプトからOracleデータベースにデータを挿入するには、複数の方法があります。
1) コマンドプロンプトから
[oracle@OLE1]$ echo "insert into EMP values (7001,'TESTUSER','CLERK',7902,sysdate,2500,800,10);"|sqlplus -s scott/tiger;
auto COMMIT upon EXIT.
2) シェルスクリプトから
vi insert_stm.sh
echo "Insert Data into EMP table of scott."
sqlplus -s /nolog<<-EOF
conn scott/tiger;
set heading on feedback on;
insert into EMP values (7001,'TESTUSER','CLERK',7902,sysdate,2500,800,10);
commit;
EOF
echo "Insert Done."
:wq
[oracle@OLE1 Desktop]$ sh insert_stm.sh
Insert Data into EMP table of scott.
1 row created.
Commit complete.
Insert done.
[oracle@OLE1 Desktop]$
注: リモート データベースを使用している場合は、次のように「@」記号を使用してください。
sqlplus -s scott/tiger@stringname;
conn スコット/tiger@stringname;
そのためにSQL*Plusを使用できます。
sqlplus user/password@database <<EOF
INSERT INTO EMPLOYEE...
EOF