ORACLE中写入txt文本与从Txt文件中读入数据修改表结构
ORACLE中写入txt文本与从Txt文件中读入数据修改表结构
--创建一个表 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(长度);*/