- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:シェルでのファイル内に記載されたSQLファイル実行)
シェルでのファイル内に記載されたSQLファイル実行方法を教えてください
このQ&Aのポイント
- シェルでのファイル内に記載されたSQLファイルをPostgresで実行したいと思っています。OracleのSqlPlusでは@@C:/path/hogehoge.sqlのように実行できましたが、Postgresではpsql -e DB名 ユーザ名 < C:/path/hogehoge.sqlのコマンドがエラーとなります。
- ファイル内のSQLファイルのパスの指定方法が間違っているのか、他のオプション指定が必要なのか、現状では解決方法が見つかっていません。
- 解決方法を知っている方がいらっしゃれば教えていただけませんでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
@@C:/path/xxx.sqlでCドライブのpathというパスにあるxxx.sqlというSQLファイルを実行するのはOracle Databaseが提供しているSQL*PLUSの機能で、当然ながら同等の機能がpsqlコマンドに実装されているかどうかは分からない、という点はまず最初に理解していただきたい。 ところで、psqlには\iという内部コマンドがあり、これを使えば同等の事はできると思われる。以下、Linux(今回動作検証に使ったのはOracle Linux 5.8+PostgreSQL 8.1.23)での例。 【コンソール】 postgres=# \i '/path/hogehoge.sql' 【ファイルの中身】 \i '/path/xxx.sql' \i '/path/yyy.sql' \i '/path/zzz.sql' ・ ・ ・
お礼
anmochiさんの方法で無事解決することができました! @@によるSqlスクリプト実行はSqlPlusの機能である、というのはWebを検索している段階で理解はしておりました。 質問の項では言及を省かせていただいたのですが、ファイルの内容の'@@'の部分を、Webを参考に試行錯誤しながら変換を行いました。それでも自分の力では解決することができなかったために質問を書かせていただいた次第です。 本当に助かりました!回答をしていただき、本当にありがとうございました!!