从文件加载 sql 并在 oracle 中创建它的视图

Posted

技术标签:

【中文标题】从文件加载 sql 并在 oracle 中创建它的视图【英文标题】:Load sql from file and create a view of it in oracle 【发布时间】:2018-03-26 13:28:58 【问题描述】:

我的电脑中保存的 sql 文件有问题。我真正要做的是,我可以创建该 sql 文件的视图,人们可以向其中添加额外的表,但核心将始终从我的文件中获取。我创建了一个简单的文件,可以使用 define @"C:\Users\name.surname\Desktop\stock.sql" 将其加载到 SQL Developer 中 但是,我不知道如何使用它或创建它的视图。 尝试了一个简单的方法:

create view  VW_MINE AS
select * 
from
( @"C:\Users\name.surname\Desktop\stock.sql") X;

但是收到错误Invalid table name

如何处理从文件加载的 SQL?

【问题讨论】:

向我们展示 'stock.sql' 文件中的内容 如果 'stock.sql' 是分隔数据,例如 CSV,您可以创建一个映射到该文件的外部表,然后对其进行查询。通常,当您获得一个 .SQL 文件时,您可以在 SQLDev 中打开它,或者您在工作表中输入 @@C:\Users\name.surname\Desktop\stock.sql 并使用 F5 执行 【参考方案1】:

我没有尝试过使用 SQL 开发人员,但这绝对适用于 SQL* Plus。

/*contents of mysqlfile.sql */
select * from hr.employees

DECLARE
  sql_file VARCHAR2(32767) := '
@@C:\Users\kaushik\Desktop\stock.sql  
';
--read the whole contents of the file into
--a variable. mysqlfile.sql cannot contain an "@" in itself. 
--the @@ expression must be in a separate line
BEGIN 
   EXECUTE IMMEDIATE 'create or replace view myview as ' || sql_file; --execute it dynamically.
END;
/

【讨论】:

谢谢,但我不工作。如果我输入 varchar 变量 sql 语句,那么它可以工作,否则它会显示“缺少 SELECT 语句”

以上是关于从文件加载 sql 并在 oracle 中创建它的视图的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Oracle SQL 验证 txt 文件中的日期?

使用 Cordova/Phonegap 保存从手机摄像头拍摄的图像 Windows Phone 7

在 Android 中动态创建/删除按钮

在 App_Data 中的 MDF 文件上运行 SQL 脚本

在 Oracle pl/sql 中创建或替换表

什么是哈希表以及如何在 C 中创建它? [关闭]