我有一个ETL过程涉及一个大量使用SELECT INTO语句的存储过程(最少记录,因此生成较少的日志流量,因此更快).在一个特定存储的存储过程中发生的一批工作中,几个最昂贵的操作是急切的线程,它们似乎只是缓冲查询结果,然后将它们复制到正在制作的表中.
热门线轴上的MSDN文档非常稀少.有没有人更深入地了解这些是否真的有必要(以及在什么情况下)?我有一些理论可能有意义,也可能没有意义,但没有成功从查询中消除这些理论.
.sqlplan文件非常大(160kb)所以我想将它们直接发布到论坛可能是不合理的.
所以,这里有一些可能适合特定答案的理论:
我想从Oracle SQL Developer创建我的查询的平面文件(文本文件).
我已经使用SPOOL通过脚本文本文件成功创建了文本文件,但我想将每列的标题删除到我的输出中.
我得到这个输出:
Header000001 Header000002 ------------ ------------ Adetail1 Bdetail1 Adetail2 Bdetail2 Adetail3 Bdetail3
但是,我想得到这个输出:
Adetail1Bdetail1 Adetail2Bdetail2 Adetail3Bdetail3
我已经尝试过命令"set heading off",但是有消息说:
"SQLPLUS COMMAND Skipped: set heading off".
Run Code Online (Sandbox Code Playgroud)
这些是我发出的输入:
spool on;
spool C:\SQLFiles\PSB_ATMLKP.txt;
set newpage 0;
set echo off;
set feedback off;
set heading off;
select terminal_number, terminal_name from terminal_table;
spool off;
Run Code Online (Sandbox Code Playgroud) 我正在做以下假脱机声明:
SET VERIFY OFF
SET FEEDBACK OFF
SET HEADING OFF
SET TRIMSPOOL ON
SET TERM OFF
SPOOL &pathRelations
START scripts/relations.sql &parent
SPOOL OFF
SET TERM ON
Run Code Online (Sandbox Code Playgroud)
该scripts/relations.sql文件包含一个简单的select语句.
不幸的是,假脱机文件包含一个空行作为文件中的第一行.这条线在我们的框架中引起了麻烦.
当然,我可以摆脱这些路线sed但是有没有办法首先压制它的创造?
我在运行下面的命令之前假脱机了一个文件并获得了这样的输出,
我已经设置了标题,反馈关闭
SET HEADING OFF SET FEEDBACK OFF SPOOL D:\ TEST.TXT SELECT SYSDATE FROM DUAL; SPOOL OFF
TEST.TXT中的输出:
SQL> SELECT SYSDATE FROM DUAL;
20-JAN-09
SQL> SPOOL OFF
如何删除两个SQL>行.我只想要输出.
提前致谢.
我有一个关于假脱机程序结果的问题.我的示例sql脚本看起来像这样.
whenever sqlerror exit failure rollback
set heading off
set arraysize 1
set newpage 0
set pages 0
set feedback off
set echo off
set verify off
declare
ab varchar2(10) := 'Raj';
cd varchar2(10);
a number := 10;
c number;
d number;
begin
c := a+10;
select ab,c into cd,d from dual;
end;
SPOOL
select cd,d from dual;
SPOOL OFF
EXIT;
Run Code Online (Sandbox Code Playgroud)
上面的脚本不起作用,但我想做这样的事情,在开始结束块我们计算一些值,我想假设这些结果.
谢谢.
如何在不使用命令的情况下从swiftmailer发送假脱机?
php app/console swiftmailer:spool:send --env=prod
我需要以某种方式将其放入php文件中,以便服务器管理员可以将其添加到Schedule.
在我的Symfony2网络应用程序中,我应该发送两种电子邮件:即时和批量.应立即发送即时电子邮件,同时应使用假脱机发送批量电子邮件.使用Symfony2中Swiftmailer的默认配置是不可能的,因为只有一个邮件服务.
类似的问题已经在SO(如何假脱机电子邮件(在一个任务中)和在其他控制器中发送正常的电子邮件?)中提出了没有运气,但根据这个github线程(https://github.com/) symfony/SwiftmailerBundle/issues/6)可以创建第二个邮件服务,可以配置完全不同于默认邮件服务.有人(stof)建议作为一种可能的解决方案,遵循SwiftmailerBundle(https://github.com/symfony/SwiftmailerBundle/blob/master/Resources/config/swiftmailer.xml)中的配置来创建这项新服务,但是我不知道究竟是怎么做到的.
有没有人知道如何创建一个额外的邮件服务,我可以将其配置为假脱机,同时使用默认邮件服务发送常规(即时)电子邮件?
我在Coldfusion 9的邮件假脱机中有大约9,000个未传送的消息.据我所知,管理这些消息的唯一方法是通过CF Admin GUI一次操作10个消息.
我正在寻找一种方法来加快这个过程.我想清除队列,或批量发送它们.
有谁知道如何做到这一点?
谢谢,
戴夫
我需要使用sqlplus从Oracle中的表中调整csv.以下是所需的格式:
"HOST_SITE_TX_ID","SITE_ID","SITETX_TX_ID","SITETX_HELP_ID"
"664436565","16","2195301","0"
"664700792","52","1099970","0"
Run Code Online (Sandbox Code Playgroud)
以下是我写的shell脚本的相关部分:
sqlplus -s $sql_user/$sql_password@$sid << eof >> /dev/null
set feedback off
set term off
set linesize 1500
set pagesize 11000
--set colsep ,
--set colsep '","'
set trimspool on
set underline off
set heading on
--set headsep $
set newpage none
spool "$folder$filename$ext"
select '"'||PCL_CARRIER_NAME||'","'||SITETX_EQUIP_ID||'","'||SITETX_SITE_STAT||'","'||SITETX_CREATE_DATE||'","'||ADVTX_VEH_WT||'"'
from cvo_admin.MISSING_HOST_SITE_TX_IDS;
spool off
Run Code Online (Sandbox Code Playgroud)
(我已经使用了一些注释声明来表示我尝试但无法工作的事情)
我收到的输出是:
'"'||PCL_CARRIER_NAME||'","'||SITETX_EQUIP_ID||'","'||SITETX_SITE_STAT||'","'||SITETX_CREATE_DATE||'","'||ADVTX_VEH_WT||'"'
"TRANSPORT INC","113","00000000","25-JAN-13 10.17.51 AM",""
"TRANSPORT INC","1905","00000000","25-JAN-13 05.06.44 PM","0"
Run Code Online (Sandbox Code Playgroud)
这表明标题搞砸了 - 它实际上是打印应该被解释为sql语句的整个字符串,就像显示的数据一样.
我正在考虑的选项:
1)使用colsep
set colsep '","'
spool
select * from TABLE
spool off
Run Code Online (Sandbox Code Playgroud)
这引入了其他问题,因为具有前导和尾随空格的数据,文件中的第一个和最后一个值不用引号括起来 …
我有一个查询,将大量数据返回到CSV文件中.事实上,Excel无法打开它 - 行数太多了.有没有办法控制spool在每次处理65000行时假脱机到新文件?理想情况下,我想有我在输出顺序命名的文件,如large_data_1.csv,large_data_2.csv,large_data_3.csv,等...
我可以dbms_output在PL/SQL块中使用来控制输出多少行,但是我如何切换文件,因为spool似乎无法从PL/SQL块访问?
(Oracle 10g)
更新:
我无法访问服务器,因此将文件写入服务器可能无法正常工作.
更新2:
一些字段包含自由格式文本,包括换行符,因此在写入文件后计算换行符并不像在返回数据时计算记录一样简单...
spool ×10
oracle ×5
sqlplus ×4
plsql ×2
swiftmailer ×2
symfony ×2
coldfusion ×1
coldfusion-9 ×1
columnheader ×1
eager ×1
email ×1
header ×1
queue ×1
sql ×1
sql-scripts ×1
sql-server ×1
t-sql ×1