【问题标题】:Read Excel file in Oracle database读取 Oracle 数据库中的 Excel 文件
【发布时间】:2019-11-08 06:39:55
【问题描述】:

我想知道一种可以帮助我阅读 excel 文件的方法或程序或查询。我只想将 excel 文件放在我的数据库服务器上的某个位置,并使用查询在查询输出中显示该 excel 文件的所有记录。文件可以是任意长度、任意数量的行和列。

我使用过 as_read_xlsx,但它以列的形式提供数据,还提供单独的字符串、数字和日期。我希望所有数据都显示在 excel 中。

【问题讨论】:

标签: sql excel oracle plsql


【解决方案1】:

我只想将 excel 文件放在我的数据库服务器上的某个位置并使用 在查询输出中显示该 excel 文件的所有记录的查询。 文件可以是任意长度、任意数量的行和列。

正如我在 cmets 中提到的,您需要创建一个 External 表来执行此操作。 见下文:

我的CSV (Tst.csv) 文件内容:

创建目录CSV_FILES并以SYS登录并授予读写权限。

GRANT READ,WRITE ON DIRECTORY CSV_FILES TO scott;

创建External 表如下:

CREATE TABLE TST_TABLE
(
  ACCT_NO                   VARCHAR2(7),
  LOAN_AMOUNT               NUMBER,
  PRODUCT_TYPE              VARCHAR2(3) 
)
ORGANIZATION EXTERNAL
  (  TYPE ORACLE_LOADER
     DEFAULT DIRECTORY CSV_FILES
     ACCESS PARAMETERS 
       ( RECORDS DELIMITED  BY NEWLINE
         skip 1
         LOGFILE CSV_FILES:'tstlog.log'
         BADFILE CSV_FILES:'tstbad.bad'
         FIELDS TERMINATED BY  ","            
           (
              ACCT_NO            ,
              LOAN_AMOUNT        ,
              PRODUCT_TYPE       
            )
          )
     LOCATION ('Tst.csv'))
     reject limit unlimited;

查询表中所有记录为:

SQL> select * from TST_TABLE;

ACCT_NO LOAN_AMOUNT PRO
------- ----------- ---
AFSGSGT       34454 XXX
BSDFFGS       45645 YYY
SFSDFDS       56453 ZZZ

查询以使用过滤条件选择选择性记录:

SQL> select * from TST_TABLE where product_type = 'XXX';

ACCT_NO LOAN_AMOUNT PRO
------- ----------- ---
AFSGSGT       34454 XXX

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多