我正在编写一个脚本,用于从Powerschool数据库中提取三个字段,并将信息假脱机到一个.csv文件中。这是六个脚本系列中的最后一个,除了它们针对不同的字段之外,这些脚本基本相同。在所有其他脚本中,我使用以下代码从文件所在的供应商处获取符合.csv规范的"header“行:
SELECT
'school_id,student_id,email,first_name,last_name,Grade'
FROM
Dual
UNION ALL其他五个文件都可以完美地工作。但是,由于某些原因,最后一个生成了错误ORA-01790。我找不到这个脚本和所有其他脚本之间的区别。你们觉得怎么样?下面是生成错误的完整脚本:
set heading off
set pagesize 0
set linesize 400
set feedback off
set underline off
set trimspool on
SET LONGCHUNKSIZE 1024
SET LONG 10000
spool d:\psmajorclarity\csv\mcguardianexport.csv
SELECT
'student_id,guardian_email,guardian_email2'
FROM
Dual
UNION ALL
SELECT
student_number || ',' ||
guardianemail || ',' ||
guardianemail
FROM students
WHERE Grade_Level>=6
AND Grade_level<=12;
SPOOL off
EXIT;其中Student_number为浮点型数据类型,卫士邮箱为CLOB类型。
下面是一个功能齐全、执行正常的脚本:
set heading off
set pagesize 0
set linesize 400
set feedback off
set underline off
set trimspool on
SET LONGCHUNKSIZE 1024
SET LONG 10000
spool d:\psmajorclarity\csv\mcstudentexport.csv
SELECT
'school_id,student_id,email,first_name,last_name,Grade'
FROM
Dual
UNION ALL
SELECT
schoolid || ',' ||
student_number || ',' ||
NULL || ',' ||
first_name || ',' ||
REPLACE(last_name,',') || ',' ||
grade_level
FROM STUDENTS
WHERE Grade_Level>=6
AND Grade_level<=12;
SPOOL off
EXIT;发布于 2019-01-18 00:47:18
我似乎已经解决了我的问题。
我改变了这一点:
SELECT
'student_id,guardian_email,guardian_email2'
FROM
Dual
UNION ALL
SELECT
student_number || ',' ||
guardianemail || ',' ||
guardianemail要这样做:
SELECT
'student_id,guardian_email,guardian_email2'
FROM
Dual
UNION ALL
SELECT TO_CHAR
(student_number || ',' ||
guardianemail || ',' ||
guardianemail)这使得.CSV文件可以正常生成。我猜电子邮件字段是一个CLOB,所以这是必要的。
https://stackoverflow.com/questions/54240384
复制相似问题