我的任务是将一些代码从sqlplus迁移到oracle中的psql,我有一个bash脚本,它可以执行一个存储过程,并根据结果调用一个sqlplus,这个sqlplus会将多个文件从数据库中转储出来:我对如何在postgres中这样做感到非常困惑。
一个例子
column nomreg noprint new_value _nomregion
column noreg noprint new_value Numreg
Select nomreg,noreg From schema.table;
column numvers noprint new_value _numvers
column datvers noprint new_value _datvers
Select numvers, datvers From schema.table;
Column Dat1 noprint new_value EchM
Column Dat2 noprint new_value EchM_1
Select To_char(Datproech,'YYYYMM') Dat1 from schema.table;
Select NVL(To_char(Min(Datproech),'YYYYMM'),'&EchM') Dat1 from schema.table
where Substr('&EchM',1,4)='1900';
Select To_Char(Add_months(To_Date('&EchM','YYYYMM'),-1),'YYYYMM') Dat2 from Dual;
set linesize 250
set verify off
Spool &1/Mailing_SPP_&NumReg..lst
select distinct a.Numben|| ' ' ||a.CleBen,'|',a.NumNir||' '||a.CleNir,'|',Rpad(a.Civilite,4,' '),'|',Rpad(LTRIM(RTRIM(UPPER(a.NomPre)))
||' '|| LTRIM(RTRIM(UPPER(a.Prenom))),40,' '),'|',Rpad(NVL(a.Adr1F,a.Adr1E),32,' '),'|',Rpad(NVL(a.Adr2F,a.Adr2E),32,' '),'|',
Rpad(NVL(a.Adr3F,a.CodPosE||' '||a.VilE),32,' '),'|',NVL(a.CodPosF,' '),'|',Rpad(NVL(a.VilF,a.Pays),26,' '),'|',' '
FROM AMIAN.tben a, AMIAN.tpaie b where a.numben=b.numben and b.perpai=a.dat1pai and
To_Char(b.datpai,'YYYYMM')='&EchM' order by 1;
Spool off在同一个文件中
ttitle CE '----- Contenu of table TABLE -----' skip
spool &1/tbil_pla
set linesize 80
clear breaks
clear computes
column DatProech heading 'Monthy paiments'
column MontPaye heading ' Total payments '
column Montpaye format B999999999999.99
column NbAlloc heading 'Nbre Allocataires'
column NbPai heading 'Nbre Paiements'
column Nbmen heading 'Nbre of months'
column today noprint new_value datejour
ttitle left _nomregion skip 2 -
ttitle left 'Edition ' datejour skip 1 -
ttitle left 'Application MYAPPLICATION ' _numvers ' de ' _datvers skip 1 -
center 'HEADER HEADER' skip 1 -
center '=============================' skip 2
select Sysdate Today,DatProech,MontPaye,NbAlloc,NbPai,Nbmen from EXPLOIT.TBIL;
ttitle off
column DatProech heading 'monthly paiments'
column MontavaPay heading 'accounts'
column Montavapay format B999999999999.99
column NbavaAlloc heading 'Nbre beneficiaries'
column NbavaPai heading 'Number of payments'
column Nbavamen heading 'Number of months'
select Sysdate Today,DatProech,Montavapay,NbavaAlloc,NbavaPai,Nbavamen from Schema.table;
spool off 我知道这个问题还不够清楚,所以总的来说:
如何在psql中对导出文件进行批处理,或者使用过程和Orafce的UTL_File会更好吗?
2-如何使用psql‘对齐文本、对齐文本、控制列之间的空格来格式化报告
发布于 2021-10-25 13:54:22
psql's \copy命令将数据导出到客户端文件。psql没有提供对齐输出和格式化输出的方法,但是psql一开始就很好地对齐了输出,所以在获得可读的输出方面不会遇到与SQL*Plus一样的麻烦。为了满足高级需求,您可以使用\pset format html或\pset format latex编写这些格式的输出。然后,您可以使用CSS或将报表包含在Latex文件中,以获得良好的格式。https://dba.stackexchange.com/questions/301621
复制相似问题