sql - 如何将单词附加到文件中的一行而不移动到下一行-?
问题描述
我正在使用 UTL_FILE 从 .csv 文件中提取输出,并尝试将性别附加到已经存在的文件数据中。但是在我尝试的所有方法中,我都无法获得预期的输出。在这方面需要快速帮助。
实际文件(Details.csv):
Name,Country,State,City
Lina,Brazil,Bahia,Salvador
John,USA,Texas,Austin
Ashton,Australia,Tasmania,Hobart
我的输出:
Name,Country,State,City
,Gender
Lina,Brazil,Bahia,Salvador
,Female
John,USA,Texas,Austin
,Male
Ashton,Australia,Tasmania,Hobart
,Male
预期输出(Details_upd.csv):
Name,Country,State,City,Gender
Lina,Brazil,Bahia,Salvador,Female
John,USA,Texas,Austin,Male
Ashton,Australia,Tasmania,Hobart,Male
- - - 代码 - - - -
DECLARE
f_line VARCHAR2 (32767);
file_1 UTL_FILE.file_type;
file_2 UTL_FILE.file_type;
f_dir VARCHAR2 (25) := 'DATA';
L_check_UPDATED BOOLEAN;
l_line VARCHAR2(32767);
BEGIN
file_1 := UTL_FILE.fopen (f_dir,'Details.csv','R');
file_2 := UTL_FILE.fopen (f_dir,'Details_upd.csv', 'W');
UTL_FILE.get_line (file_1, f_line);
l_line := trim(f_line);
UTL_FILE.PUT_LINE(file_2,l_line||','||'Gender');
LOOP
L_check_UPDATED := TRUE;
/*--omitting the LOGIC part of code--*/
IF (L_check_UPDATED) THEN
l_line := trim(f_line);
UTL_FILE.PUT(file_2,l_line||',Male');
ELSE
l_line := trim(f_line);
UTL_FILE.PUT_LINE(file_2,l_line||',Female');
END IF;
END LOOP;
UTL_FILE.fclose (file_1);
UTL_FILE.fclose (file_2);
END;
解决方案
您将需要去掉使用 GET_LINE 读取的字符串末尾的换行符。尝试:
l_line := rtrim (f_line, ' ' || CHR (10) || CHR (13))
推荐阅读
- javascript - 如何使用对象的括号表示法和属性名称的字符串向对象添加属性?
- python - 带单引号且不带转义字符的 JSON 对象
- node.js - MySQL 查询不会超过承诺链中的某个点
- regex - 301 重定向到 URL 中带有 # 的域
- scikit-learn - 在 svm.scv() 中同时使用“class_weight”和“c”参数会发生什么?
- postgresql - PostgreSQL Generate_Series() 插入未完成
- c++ - 调试 curl 未处理的异常
- c# - 对项目源进行列表插入时,组合框项目未更新
- java - 如何检查超过和低于某些预定限制的值
- json - 在 S3 中生成大量样本数据以供 Spark 使用?