﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-ybc-文章分类-DATABASE</title><link>http://www.blogjava.net/ybc/category/30392.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 02 Apr 2008 07:35:00 GMT</lastBuildDate><pubDate>Wed, 02 Apr 2008 07:35:00 GMT</pubDate><ttl>60</ttl><item><title>bcp单表导入导出命令详解</title><link>http://www.blogjava.net/ybc/articles/190344.html</link><dc:creator>ybc</dc:creator><author>ybc</author><pubDate>Wed, 02 Apr 2008 05:08:00 GMT</pubDate><guid>http://www.blogjava.net/ybc/articles/190344.html</guid><wfw:comment>http://www.blogjava.net/ybc/comments/190344.html</wfw:comment><comments>http://www.blogjava.net/ybc/articles/190344.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ybc/comments/commentRss/190344.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ybc/services/trackbacks/190344.html</trackback:ping><description><![CDATA[<div class="blog_content">BCP是SYBASE公司提供专门用于数据库表一级数据备份的工具。 <br />
　　一般存放在所安装的ASE或者Open Client 的BIN目录中。 <br />
可执行文件名称为bcp.EXE <br />
　　参数列表如下：（可用 bcp 得到） <br />
　　
<pre class="sql" style="display: none" name="code">usage: bcp [[database_name.]owner.]table_name[:slice_number] {in | out} datafile
　　
　　[-m maxerrors] [-f formatfile] [-e errfile]
　　[-F firstrow] [-L lastrow] [-b batchsize]
　　[-n] [-c] [-t field_terminator] [-r row_terminator]
　　[-U username] [-P password] [-I interfaces_file] [-S server]
　　[-a display_charset] [-q datafile_charset] [-z language] [-v]
　　[-A packet size] [-J client character set]
　　[-T text or image size] [-E] [-g id_start_value] [-N] [-X]
　　[-M LabelName LabelValue] [-labeled]
　　[-K keytab_file] [-R remote_server_principal]
　　[-V [security_options]] [-Z security_mechanism] [-Q]</pre>
<br />
　　 <br />
　　<span style="font-size: large"><span style="color: blue">常用数据备份格式为： </span></span>　<span style="font-size: large">　<br />
<span style="color: red">bcp dbname..tablename out c:\temp\filename -Usa -Ppassword -Sservername -c </span></span>　　即可。 <br />
　　其中 dbname为数据库名，tablename为表名，-U后为SYBASE登录名称，-P后为SYBASE登录口令，-S后为SYBASE服务名称（即你在dsedit中设置的Servername），-c代表使用可见文本方式导出数据 <br />
　　如果为数据恢复只需要将out 替换为 in 即可。 </div>
<script type="text/javascript">
  dp.SyntaxHighlighter.ClipboardSwf = '/javascripts/syntaxhighlighter/clipboard.swf';
  dp.SyntaxHighlighter.HighlightAll('code', true, true);

  fix_image_size($$('div.blog_content img'), 700);
</script>
<img src ="http://www.blogjava.net/ybc/aggbug/190344.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ybc/" target="_blank">ybc</a> 2008-04-02 13:08 <a href="http://www.blogjava.net/ybc/articles/190344.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一句简单的insert_select的Sql语句让我罗嗦了半天</title><link>http://www.blogjava.net/ybc/articles/ybc20080328_0923.html</link><dc:creator>ybc</dc:creator><author>ybc</author><pubDate>Fri, 28 Mar 2008 01:24:00 GMT</pubDate><guid>http://www.blogjava.net/ybc/articles/ybc20080328_0923.html</guid><wfw:comment>http://www.blogjava.net/ybc/comments/189181.html</wfw:comment><comments>http://www.blogjava.net/ybc/articles/ybc20080328_0923.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ybc/comments/commentRss/189181.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ybc/services/trackbacks/189181.html</trackback:ping><description><![CDATA[<p><font style="background-color: #c0dcc0">[1] insert into adm_hg_ybqysk_yr<br />
[2]&nbsp;&nbsp; (id_qutr,id_taxp,id_swjg,id_gbhy,id_jyhy,id_zclx,id_zsfs,id_sz,mny_jrk_yr,mny_jrk_lyr)<br />
[3]&nbsp;&nbsp; select @qutrid@,a.id_taxp,a.id_swjg,a.id_gbhy,a.id_jyhy,a.id_zclx,a.id_zsfs,substring(b.id_sm,1,2),<br />
[4]&nbsp;&nbsp;&nbsp; sum(case when b.id_mth = @monthid@ then mny_rk_tyr else 0 end),<br />
[5]&nbsp;&nbsp; sum(case when b.id_mth = @lastymonthid@ then mny_rk_tyr else 0 end)<br />
[6]&nbsp;&nbsp; <br />
[7]&nbsp;&nbsp; from adm_hg_sntqybqy a,aam_sk_nsrsk_ssqz b<br />
[8]&nbsp;&nbsp; where a.id_taxp = b.id_taxp<br />
[9]&nbsp;&nbsp;&nbsp; and a.id_qutr = @qutrid@ and b.id_mth in(@monthid@,@lastymonthid@)<br />
[10]&nbsp;&nbsp;&nbsp; and substring(b.id_sm,1,2) &lt; = '51'<br />
[11]&nbsp;&nbsp; group by @qutrid@,a.id_taxp,a.id_swjg,a.id_gbhy,a.id_jyhy,a.id_zclx,a.id_zsfs,substring(b.id_sm,1,2)</font></p>
<font style="background-color: #c0dcc0">
<p><br />
&nbsp; 这条sql都干些什么了，注意其中的@qutrid@,@monthid@,@lastmonthid@都是外部传入的时间参数值，有点英文底子的应该能看懂，这里我就不解释了，呵呵^&amp;^,但是请注意了，这几个常量之间是有关系的，我这里还是说下吧。比如传进来的时间是08年1月份，那么这几个参数值分别为<br />
&nbsp; @qutrid@＝2008一季度（当然这里可以编个号如20081301便于程序处理）,<br />
&nbsp; @monthid@＝200801,<br />
&nbsp; @lastmonthid@＝200701，很简单吧</p>
<p>&nbsp; 一共十二行，还好不是很多哦，他其实就是做了次汇总，然后插到表中。</p>
<p>&nbsp; [1][2][3]行不用介绍，用select的方式只直接insert</p>
<p>&nbsp; [4][5] sum集合函数的汇总语句里面有个case when的条件语句判断</p>
<p>&nbsp; [7][8] a表和b表通过id_taxp字段关联，取得两张表的交集，是不是啊？</p>
<p>&nbsp; [9]&nbsp; 用a表字段的id_qutr和b表的id_mth设置过滤（具体的讲，就是a表中取是当前季度值的记录，b表中取是当前月或是去年同期的记录值）</p>
<p>&nbsp; [10] 再次限定b表的取值范围，这么简单不说也罢</p>
<p>&nbsp; [11] 终于改结束了，这是惯例，用sum（）加一些非聚合运算的字段，就必须把这些字段放在group by里，不然会有什么后果，不说你也明白</p>
<p><br />
&nbsp; 最后我再来此总结，不要嫌我罗嗦啊。</p>
<p>&nbsp; 这个Sql语句的要做到的事情是：取a表的季度值是@qutrid@的记录，取表的月份值是@qutrid@或@lastymonthid@的记录，再来就substring(b.id_sm,1,2) &lt; = '51'过滤更多的记录，剩下的两表记录以id_taxp做了join，可以说经过了四次过滤，接下来再对剩余b表记录做sum（case... when...）的汇总（即当前月的mny_rk_tyr字段值都累加，去年同期的mny_rk_tyr也累加在一起），想想每个季度，它是要做三次这样的汇总的，为什么呢？一个季度有三个月。是不是很简单啊。最后把汇总的记录值插入到目标表，就万事大吉了，我也该洗洗睡了， 2008-3-27 22:16<br />
</font></p>
<img src ="http://www.blogjava.net/ybc/aggbug/189181.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ybc/" target="_blank">ybc</a> 2008-03-28 09:24 <a href="http://www.blogjava.net/ybc/articles/ybc20080328_0923.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>