两个用户的SQLULDR2需求


有两个用户要求SQLULDR2能根据查询语句的结果给出建表的语法, 先提出要求的是一个国外网友, 当时没有理他, 这周一个国内网友也提出了同样的需求, 想想也比较合理, 于是就满足一下吧.
    建表的语法会写在SQLLDR的控制文件中, 并不生成独立的SQL文件, 当我们运行如下命令.

sqluldr2 scott/tiger query=emp table=emp
    得到的SQLLDR控制文件(emp_sqlldr.ctl)中, 就包含了建表语法, 如下所示.

--
-- SQL*UnLoader: Fast Oracle Text Unloader (GZIP), Release 3.0.1
-- (@) Copyright Lou Fangxin (AnySQL.net) 2004 - 2010, all rights reserved.
--
/*
  CREATE TABLE emp (
    EMPNO NUMBER(4),
    ENAME VARCHAR2(10),
    JOB VARCHAR2(9),
    MGR NUMBER(4),
    HIREDATE DATE,
    SAL NUMBER(7,2),
    COMM NUMBER(7,2),
    DEPTNO NUMBER(2)
  );
*/
OPTIONS(BINDSIZE=2097152,READSIZE=2097152,ERRORS=-1,ROWS=50000)
LOAD DATA
INFILE 'uldrdata.txt' "STR X'0a'"
INSERT INTO TABLE emp
FIELDS TERMINATED BY X'2c' TRAILING NULLCOLS
(
  EMPNO CHAR(6) NULLIF EMPNO=BLANKS,
  ENAME CHAR(10) NULLIF ENAME=BLANKS,
  JOB CHAR(9) NULLIF JOB=BLANKS,
  MGR CHAR(6) NULLIF MGR=BLANKS,
  HIREDATE DATE "YYYY-MM-DD HH24:MI:SS" NULLIF HIREDATE=BLANKS,
  SAL CHAR(10) NULLIF SAL=BLANKS,
  COMM CHAR(10) NULLIF COMM=BLANKS,
  DEPTNO CHAR(4) NULLIF DEPTNO=BLANKS
)
    数据类型的准确性还有待验证, 并且只是Oracle的建表语法, CHAR和VARCHAR2也没有进行区分, 若有必要可进一步改善



相关阅读:
十天学习PHP之第三天
PHP通过header实现文本文件下载的代码
在Apache中整合JSP和PHP
批处理 实现定时关机、注销、重启、锁定等功能
实例讲解JSP Model2体系结构(中)
如何彻底解决工行U盾在Vista下蓝屏的问题
PHP+MYSQL网站开发基础知识
快速掌握Oracle数据库中的Copy命令
获取 textarea 标签第n行的文字的js代码
CSS强制TD不换行
CentOS5.5中安装VirtualBOX增强工具
用 C# 编程实现读写Binary
Windows 7 RC发布导致Vista市场份额增速减缓
Document 对象的常用方法
快速导航

Copyright © 2016 phpStudy | 皖ICP备18014864号-4