【问题标题】:Executing sql file from another sql file从另一个 sql 文件执行 sql 文件
【发布时间】:2016-12-12 04:29:15
【问题描述】:

我有一个名为 Alter_table.sql.sql 文件,其中包含以下代码。

alter table mytable add newcolumn VARCHAR2(1);

我不想编辑此文件并添加假脱机命令。但是我需要通过在另一个文件(execute_sql.sql)中写入假脱机来执行Alter_table.sql,该文件应该如下所示。我不确定正确的语法。有人可以帮忙吗?

SET SERVEROUTPUT ON
SET DEFINE OFF
SPOOL Alter_Table_STD_SOURCE.log

EXEC username/password@database `Alter_table.sql`

SPOOL OFF;
SET DEFINE ON
SET SERVEROUTPUT OFF

【问题讨论】:

  • 你的运行情况如何——此时你已经连接到数据库了吗?
  • 我使用命令提示符,通过它我首先指向该路径(例如 c:\Scripts)。然后我会给推荐sqlplus username/password@database。然后@execute_sql.sql
  • 好的,那么你已经连接了,你只需要加里答案的@Alter_table.sql 部分(而不是exec),没有明确的connect

标签: sql file oracle11g sqlplus spool


【解决方案1】:

(感谢 Alex Poole):-)

您需要先连接,然后使用“@”符号或“START”命令在包装脚本中运行您的 .sql 文件:

...
-- Connect if not already connected.
CONNECT username/password@database

@Alter_table.sql

...

我不确定将登录名/密码保存在文件中是个好主意,但您需要考虑安全性。

【讨论】:

  • @Alter_table.sql,或start;不是 exec,它是匿名 PL/SQL 块的简写。
猜你喜欢
  • 1970-01-01
  • 2016-12-24
  • 1970-01-01
  • 1970-01-01
  • 2016-01-12
  • 1970-01-01
  • 2018-09-28
  • 2017-12-21
  • 1970-01-01
相关资源
最近更新 更多