有没有一种方法可以在更新后使触发器从oracle生成CSV文件
我得到的SQL使我可以重新存储
select
(lower(substr(cp.fname,1,1) || translate(convert(cp.lname, 'AL32UTF8', 'UTF8'),'ón','on'))
|| ',' ||
cpel.internal_display_name
|| ',' ||
cpel.org_name
|| ',' ||
cpel.pos_title)
as "login,name,dep,tit"
from company_pers_emp_lov cpel, company_pers cp
where cp.emp_no = cpel.emp_no and cp.emp_no like 'P%'
ORDER BY cpel.emp_no DESC
FETCH FIRST 1 ROW ONLY
sql的重新存储为
登录名,部门,职位 xyyyyy,xxxxx yyyyy,部门,标题
答案 0 :(得分:0)
我通常将Tim Hall 's Generic Solution与自定义CSV package结合使用,该自定义 <security mode="TransportCredentialOnly">
<transport clientCredentialType="Basic" />
</security>
具有过程generate
,该过程将任何目录,文件名和查询作为参数并转储查询的结果使用UTL_FILE
导入CSV文件。
CREATE OR REPLACE DIRECTORY EXTRACT_DIR AS '/tmp/extracts'; --some path
GRANT READ, WRITE ON DIRECTORY EXTRACT_DIR TO <trigger_owner>; --or who executes.
然后您可以将其放入“过程/触发器”或任何需要输出到CSV文件的内容。
csv.generate('EXTRACT_DIR', 'emp.csv', p_query => 'SELECT * FROM employees');