SELECT
CASE WHEN (LENGTH(FAC_NAME_IN) = LENGTHB(FAC_NAME_IN)) THEN FAC_NAME_IN END CUST_ENG_NAME ,
CASE WHEN (LENGTH(FAC_NAME_IN) != LENGTHB(FAC_NAME_IN)) THEN FAC_NAME_IN END CUST_CHT_NAME
FROM TABLENAME_IN DTL
2013年11月11日 星期一
oracle 讀取txt檔
Oracle的UTL_FILE用文件的I/O操作。
(1)Oracle10g之前的版本需要指定utl_file包可以操作的目。
方法: 1、alter system set utl_file_dir='e:/utl' scope=spfile;
2、在init.ora文件中,配置如下:UTL_FILE=E:/utl或者UTL_FILE_DIR=E:/utl;
(2)Oracle10g之后的版本,
DECLARE
v_output utl_file.file_type;
v_contxt VARCHAR2(250);
v_pathna varchar2(10);
BEGIN
v_pathna := 'utl_file_dir';
v_output:= utl_file.fopen(v_pathna, 'test.txt', 'R');
LOOP
BEGIN
utl_file.get_line(v_output, v_contxt);
dbms_output.put_line(v_contxt);
EXCEPTION
WHEN OTHERS THEN
EXIT;
END;
END LOOP;
utl_file.fclose(v_output);
END ;
(1)Oracle10g之前的版本需要指定utl_file包可以操作的目。
方法: 1、alter system set utl_file_dir='e:/utl' scope=spfile;
2、在init.ora文件中,配置如下:UTL_FILE=E:/utl或者UTL_FILE_DIR=E:/utl;
(2)Oracle10g之后的版本,
1.創建目錄: | |
2 | CREATE [OR REPLACE] DIRECTORY directory AS 'pathname'; |
3 | 2.目錄創建以後,就可以把讀寫權限授予特定用戶,具體語法如下: |
4 | GRANT READ[,WRITE] ON DIRECTORY directory TO username; |
utl_file.fopen(
file_location IN VARCHAR2, --路径
file_name IN VARCHAR2, --文件名称
open_mode IN VARCHAR2, --打开模式 R 读 W 写 A 追加
max_linesize IN BINARY_INTEGER DEFAULT NULL)
RETURN file_type;
DECLARE
v_output utl_file.file_type;
v_contxt VARCHAR2(250);
v_pathna varchar2(10);
BEGIN
v_pathna := 'utl_file_dir';
v_output:= utl_file.fopen(v_pathna, 'test.txt', 'R');
LOOP
BEGIN
utl_file.get_line(v_output, v_contxt);
dbms_output.put_line(v_contxt);
EXCEPTION
WHEN OTHERS THEN
EXIT;
END;
END LOOP;
utl_file.fclose(v_output);
END ;
2013年11月5日 星期二
ORACLE 判斷資料中, 有沒有中文字
SELECT * FROM table a WHERE LENGTH (id) != LENGTHB (id);
區別:length 是字串長度,lengthb 是位元組長度
select length('abc中國') from dual; -- 結果: 5 碼 -------------------------- select lengthb('abc中國') from dual; -- 結果: 9 碼 (UTF8 一個中文字 3 碼) -------------------------- select 1 from dual where length('abc中國') = lengthb('abc中國'); -- 結果: 0 row (表示字串中有中文字) -------------------------- select 1 from dual where length('abc') = lengthb('abc'); -- 結果: 1 row (表示字串中無中文字)
訂閱:
文章 (Atom)