ORACLE 中写入txt文本与从Txt文件中读入数据 修改表结构

时间:2021-10-09 15:53:14

--创建一个表
DROP TABLE TEST CASCADE CONSTRAINTS ;

CREATE TABLE TEST(A VARCHAR(30),B VARCHAR(30));

--查看具体的权限

SELECT DISTINCT PRIVILEGE FROM DBA_SYS_PRIVS WHERE PRIVILEGE LIKE '%DIRECTORY%';

--用SYS用户授权给SCOTT

GRANT CREATE ANY DIRECTORY TO SCOTT ;

--授权后创建目录

CREATE OR REPLACE DIRECTORY FILENAME AS 'D:\临时';

--查询所建的表

SELECT * FROM TEST ;

--写TXT文件

DECLARE FILEHANDLE UTL_FILE.FILE_TYPE;--句柄

BEGIN

--FILENAME 必须大写,不然会提示目录路径无效

FILEHANDLE := UTL_FILE.FOPEN('FILENAME','UTIL_FILE.TXT','W');

UTL_FILE.PUT_LINE(FILEHANDLE,'HELLO ORACLE!');

UTL_FILE.PUT_LINE(FILEHANDLE,'你好,胖子!');

UTL_FILE.FCLOSE(FILEHANDLE);--关闭句柄

END;

--从TXT文件中读取内容插入到表TEST中

/*SET SERVEROUTPUT ON*/

DECLARE

  FILEHANDLE UTL_FILE.FILE_TYPE;

  FILEBUFFER VARCHAR(200);

   BEGIN

     FILEHANDLE := UTL_FILE.FOPEN('FILENAME','UTIL_FILE.TXT','R');

    LOOP

      BEGIN

           UTL_FILE.GET_LINE(FILEHANDLE,FILEBUFFER);

           INSERT INTO TEST(A) VALUES(FILEBUFFER);

           EXCEPTION 

             WHEN NO_DATA_FOUND THEN 

             EXIT ; 

       END;

      END LOOP;

    UTL_FILE.FCLOSE(FILEHANDLE);

COMMIT;

END;

--再次查询表

SELECT * FROM TEST ;

/*

-- 修改表结构

ALTER TABLE STU ADD (NAME2 VARCHAR2(10));   增加新字段

UPDATE STU SET NAME2=SUBSTR(TRIM(NAME),1,10);  赋值给新字段

ALTER TABLE STU DROP(NAME);                           删除原字段

ALTER TABLE STU RENAME COLUMN NAME2 TO NAME; 将新字段改名

ALTER TABLE  表名   MODIFY 字段名   VARCHAR2(长度);*/

分享: http://space.itpub.net/519536/viewspace-691051