﻿<?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>IT博客-love-随笔分类-oracle学习</title><link>http://www.cnitblog.com/iniboy/category/3006.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 27 Sep 2011 14:16:26 GMT</lastBuildDate><pubDate>Tue, 27 Sep 2011 14:16:26 GMT</pubDate><ttl>60</ttl><item><title>oracle9的一个SQL语句</title><link>http://www.cnitblog.com/iniboy/archive/2006/11/28/19691.html</link><dc:creator>青</dc:creator><author>青</author><pubDate>Tue, 28 Nov 2006 10:06:00 GMT</pubDate><guid>http://www.cnitblog.com/iniboy/archive/2006/11/28/19691.html</guid><wfw:comment>http://www.cnitblog.com/iniboy/comments/19691.html</wfw:comment><comments>http://www.cnitblog.com/iniboy/archive/2006/11/28/19691.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/iniboy/comments/commentRss/19691.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/iniboy/services/trackbacks/19691.html</trackback:ping><description><![CDATA[
		<font size="2">         MERGE语句是Oracle9i新增的语法，用来合并UPDATE和INSERT语句。通过MERGE语句，根据一张表或子查询的连接条件对另外一张表进行查询，连接条件匹配上的进行UPDATE，无法匹配的执行INSERT。这个语法仅需要一次全表扫描就完成了全部工作，执行效率要高于INSERT＋UPDATE，语法格式<br />       MERGE INTO T1 <br />USING (SELECT OWNER, OBJECT_NAME, MAX(ID) ID FROM T GROUP BY OWNER, OBJECT_NAME) T <br />ON (T.OWNER = T1.OWNER AND T.OBJECT_NAME = T1.TABLE_NAME)<br />WHEN MATCHED THEN UPDATE SET T1.ID = T.ID WHEN NOT MATCHED THEN INSERT VALUES (T.ID, T.OWNER, T.OBJECT_NAME);<br /><br />       另外，MERGE语句的UPDATE不能修改用于连接的列，否则会报错</font>
<img src ="http://www.cnitblog.com/iniboy/aggbug/19691.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/iniboy/" target="_blank">青</a> 2006-11-28 18:06 <a href="http://www.cnitblog.com/iniboy/archive/2006/11/28/19691.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>导入导SQL；</title><link>http://www.cnitblog.com/iniboy/archive/2006/08/01/14515.html</link><dc:creator>青</dc:creator><author>青</author><pubDate>Tue, 01 Aug 2006 07:45:00 GMT</pubDate><guid>http://www.cnitblog.com/iniboy/archive/2006/08/01/14515.html</guid><wfw:comment>http://www.cnitblog.com/iniboy/comments/14515.html</wfw:comment><comments>http://www.cnitblog.com/iniboy/archive/2006/08/01/14515.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/iniboy/comments/commentRss/14515.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/iniboy/services/trackbacks/14515.html</trackback:ping><description><![CDATA[
		<table class="TBborder" cellspacing="0" cellpadding="0" width="100%">
				<tbody>
						<tr class="inputcontent">
								<td>
										<p class="content" style="MARGIN: 4px 2px 0px">//Access<br />//Access-&gt;TXT<br />procedure TForm1.Button1Click(Sender: TObject); begin<br />  sSql := 'select * into [Text;Database=f:\].aaa.txt from demo';<br />  with AccessConnection do<br />    begin<br />      Connected := True;<br />      Execute(sSql);<br />    end;<br />end;<br /><br />//Access-&gt;DBF<br />procedure TForm1.Button3Click(Sender: TObject); begin<br />  sSql := 'select * into aaa in ''f:\'' ''dbase 5.0;'' from demo';<br />  with AccessConnection do<br />    begin<br />      Connected := True;<br />      Execute(sSql);<br />    end;<br />end;<br /><br />//Access-&gt;Excel<br />//注意:前一个aaa为Excel文件中的aaa页,后一个aaa为Access文件demo.mdb中的一个<br />表名<br />procedure TForm1.Button9Click(Sender: TObject); begin<br />  sSql :=<br />    'select * into aaa from aaa in ''E:\Delphilx\ADOSQL\PH\demo.mdb''';<br />  with ExcelConnection do<br />    begin<br />      Connected := True;<br />      Execute(sSql);<br />    end;<br />end;<br /><br />//Access-&gt;Access<br />procedure TForm1.Button4Click(Sender: TObject); begin<br />  sSql := 'select * into aaa from demo in ''E:\Delphilx\ADOSQL\PH\demo.mdb''';<br />  with AccessConnection do<br />    begin<br />      Connected := True;<br />      Execute(sSql);<br />    end;<br />end;<br /><br />//TXT-&gt;Access<br />procedure TForm1.Button2Click(Sender: TObject); begin<br />  sSql := 'select * into uform from [Text;Database=f:\].form.txt';<br />  with AccessConnection do<br />    begin<br />      Connected := True;<br />      Execute(sSql);<br />    end;<br />end;<br /><br />//DBF-&gt;Access<br />procedure TForm1.Button5Click(Sender: TObject); begin<br />  sSql := 'select * into aaa from aaa in ''f:\'' ''dbase 5.0;''';<br />  with AccessConnection do<br />    begin<br />      Connected := True;<br />      Execute(sSql);<br />    end;<br />end;<br /><br />//Excel-&gt;Access<br />//[aaa$]-&gt;Excel文件aaa.xls中的aaa页<br />procedure TForm1.Button10Click(Sender: TObject); begin<br />  sSql :=<br />    'select * into bbb from [excel 8.0;database=f:\aaa.xls].[aaa$]';<br />  with AccessConnection do<br />    begin<br />      Connected := True;<br />      Execute(sSql);<br />    end;<br />end;<br /><br />//=================================================================<br />//Oracle<br />//Oracle-&gt;Access<br />procedure TForm1.Button6Click(Sender: TObject); begin<br />  sSql :=<br />    'select * into ouform from ouform in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bklskf;PWD=bklskf;SERVER=bkls;]';<br />  with AccessConnection do<br />    begin<br />      Connected := True;<br />      Execute(sSql);<br />    end;<br />end;<br /><br />//Oracle-&gt;TXT<br />procedure TForm1.Button7Click(Sender: TObject); begin<br />  sSql := 'select VGH,VXM,VMM into lsygb.txt from (select * from lsygb in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=BKLS;PWD=BKLS;SERVER=BKLS;])';<br />//  sSql :=<br />//    'select * into form.txt from ouform in [ODBC][ODBC;Driver={Microsoft<br />ODBC for Oracle};UID=bklskf;PWD=bklskf;SERVER=bkls;]';<br />  with TxtConnection do<br />    begin<br />      Close;<br />      Connected := True;<br />      Execute(sSql);<br />    end;<br />end;<br /><br />//Oracle-&gt;Excel<br />procedure TForm1.Button8Click(Sender: TObject); begin<br />  sSql :=<br />    'select * into aaa from lsygb in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;]';<br />  with ExcelConnection do<br />    begin<br />      Connected := True;<br />      Execute(sSql);<br />    end;<br />end;<br /><br />//Oracle-&gt;DBF<br />procedure TForm1.Button11Click(Sender: TObject); begin<br />  sSql :=<br />    'select * into aaa from lsygb in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;]';<br />  with DBFConnection do<br />    begin<br />      Connected := True;<br />      Execute(sSql);<br />    end;<br />end;<br /><br />//TXT-&gt;Oracle<br />//Oracle数据库注意要将表名大写!不然创建出来的表可以看到表名但无法打开<br />procedure TForm1.Button12Click(Sender: TObject); begin<br />  sSql := 'select * into PH_TXT in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;] from ph_txt.txt';<br />  with TxtConnection do<br />    begin<br />      Close;<br />      Connected := True;<br />      Execute(sSql);<br />    end;<br />end;<br /><br />//DBF-&gt;Oracle<br />procedure TForm1.Button13Click(Sender: TObject); begin<br />  sSql :=<br />    'select * into PH_DBF in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;] from aaa';<br />  with DBFConnection do<br />    begin<br />      Connected := True;<br />      Execute(sSql);<br />    end;<br />end;<br /><br />//Access-&gt;Oracle<br />procedure TForm1.Button14Click(Sender: TObject); begin<br />  sSql :=<br />    'select * into PH_ACCESS in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;] from aaa';<br />  with AccessConnection do<br />    begin<br />      Connected := True;<br />      Execute(sSql);<br />    end;<br />end;<br /><br />//Excel-&gt;Oracle<br />procedure TForm1.Button15Click(Sender: TObject); begin //  'select * into MLB in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=BKLS;PWD=BKLS;Server=BKLS;] from MLB'<br />//Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:\aaa.xls;Extended Properties=Excel 8.0;Persist Security Info=False<br />  sSql :=<br />    'select * into PH_EXCEL in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;] from aaa';<br />  with ExcelConnection do<br />    begin<br />      Connected := True;<br />      Execute(sSql);<br />    end;<br />end;<br /><br />procedure TForm1.Button16Click(Sender: TObject); begin<br />  sSql := 'select * into qxb in ''f:\'' ''dbase 5.0;'' from lsqxb.txt';<br />  with TXTConnection do<br />    begin<br />//      Close;<br />//      ConnectionString :=<br />'Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=f:\temp;Extended Properties="text;HDR=YES;FMT=Delimited";Persist Security Info=True';<br />      Connected := True;<br />      Execute(sSql);<br />    end;<br />end; </p>
										<br />
										<div style="BORDER-BOTTOM: #8ca6de 1px solid" align="right">2004-1-14 21:17:00    </div>
										<div class="inputcaption" style="BORDER-BOTTOM: #8ca6de 1px solid">
												<table cellspacing="0" cellpadding="3" width="100%" border="0">
														<tbody>
																<tr>
																		<td>
																		</td>
																		<td align="right">
																				<a href="http://www.delphibbs.com/keylife/iblog_comment.asp?xid=5445">查看评语»»»</a>    </td>
																</tr>
														</tbody>
												</table>
										</div>
								</td>
						</tr>
				</tbody>
		</table>
		<script><![CDATA[
function show() {
	load_xmln(menupanel, menuxml, "../delphibbs/login.xsl");
}
]]&gt;</script>
		<script><![CDATA[restr();]]&gt;</script>
<img src ="http://www.cnitblog.com/iniboy/aggbug/14515.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/iniboy/" target="_blank">青</a> 2006-08-01 15:45 <a href="http://www.cnitblog.com/iniboy/archive/2006/08/01/14515.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL语句导入导出大全- -</title><link>http://www.cnitblog.com/iniboy/archive/2006/08/01/14504.html</link><dc:creator>青</dc:creator><author>青</author><pubDate>Tue, 01 Aug 2006 04:07:00 GMT</pubDate><guid>http://www.cnitblog.com/iniboy/archive/2006/08/01/14504.html</guid><wfw:comment>http://www.cnitblog.com/iniboy/comments/14504.html</wfw:comment><comments>http://www.cnitblog.com/iniboy/archive/2006/08/01/14504.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/iniboy/comments/commentRss/14504.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/iniboy/services/trackbacks/14504.html</trackback:ping><description><![CDATA[
		<h2 class="diaryTitle"> </h2>
		<p>                                       
</p>
		<p>SQL语句导入导出大全<br /></p>
		<p>/*******  导出到excel<br />EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""'</p>
		<p>/***********  导入Excel<br />SELECT * <br />FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',<br />  'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions</p>
		<p>/*动态文件名<br />declare @fn varchar(20),@s varchar(1000)<br />set @fn = 'c:\test.xls'<br />set @s ='''Microsoft.Jet.OLEDB.4.0'',<br />''Data Source="<a href="mailto:'+@fn+'" ;user?="">'+@fn+'";User</a> ID=Admin;Password=;Extended properties=Excel 5.0'''<br />set @s = 'SELECT * FROM OpenDataSource (<a href="mailto:'+@s+')...sheet1$'">'+@s+')...sheet1$'</a><br />exec(@s)<br />*/</p>
		<p>SELECT cast(cast(科目编号 as numeric(10,2)) as nvarchar(255))+'　' 转换后的别名<br />FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',<br />  'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions</p>
		<p>/********************** EXCEL导到远程SQL<br />insert OPENDATASOURCE(<br />         'SQLOLEDB',<br />         'Data Source=远程ip;User ID=sa;Password=密码'<br />         ).库名.dbo.表名 (列名1,列名2)<br />SELECT 列名1,列名2<br />FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',<br />  'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions</p>
		<p>
				<br />/** 导入文本文件<br />EXEC master..xp_cmdshell 'bcp dbname..tablename in c:\DT.txt -c -Sservername -Usa -Ppassword'</p>
		<p>/** 导出文本文件<br />EXEC master..xp_cmdshell 'bcp dbname..tablename out c:\DT.txt -c -Sservername -Usa -Ppassword'<br />或<br />EXEC master..xp_cmdshell 'bcp "Select * from dbname..tablename" queryout c:\DT.txt -c -Sservername -Usa -Ppassword'</p>
		<p>导出到TXT文本，用逗号分开<br />exec master..xp_cmdshell 'bcp "库名..表名" out "d:\tt.txt" -c -t ,-U sa -P password'</p>
		<p>
				<br />BULK INSERT 库名..表名<br />FROM 'c:\test.txt'<br />WITH (<br />    FIELDTERMINATOR = ';',<br />    ROWTERMINATOR = '\n'<br />)</p>
		<p>
				<br />--/* dBase IV文件<br />select * from <br />OPENROWSET('MICROSOFT.JET.OLEDB.4.0'<br />,'dBase IV;HDR=NO;IMEX=2;DATABASE=C:\','select * from [客户资料4.dbf]')<br />--*/</p>
		<p>--/* dBase III文件<br />select * from <br />OPENROWSET('MICROSOFT.JET.OLEDB.4.0'<br />,'dBase III;HDR=NO;IMEX=2;DATABASE=C:\','select * from [客户资料3.dbf]')<br />--*/</p>
		<p>--/* FoxPro 数据库<br />select * from openrowset('MSDASQL',<br />'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\',<br />'select * from [aa.DBF]')<br />--*/</p>
		<p>/**************导入DBF文件****************/<br />select * from openrowset('MSDASQL',<br />'Driver=Microsoft Visual FoxPro Driver;<br />SourceDB=e:\VFP98\data;<br />SourceType=DBF',<br />'select * from customer where country != "USA" order by country')<br />go<br />/***************** 导出到DBF ***************/<br />如果要导出数据到已经生成结构(即现存的)FOXPRO表中,可以直接用下面的SQL语句</p>
		<p>insert into openrowset('MSDASQL',<br />'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\',<br />'select * from [aa.DBF]')<br />select * from 表</p>
		<p>说明:<br />SourceDB=c:\  指定foxpro表所在的文件夹<br />aa.DBF        指定foxpro表的文件名.</p>
		<p>
				<br />/*************导出到Access********************/<br />insert into openrowset('Microsoft.Jet.OLEDB.4.0', <br />   'x:\A.mdb';'admin';'',A表) select * from 数据库名..B表</p>
		<p>/*************导入Access********************/<br />insert into B表 selet * from openrowset('Microsoft.Jet.OLEDB.4.0', <br />   'x:\A.mdb';'admin';'',A表)</p>
		<p>文件名为参数<br />declare @fname varchar(20)<br />set @fname = 'd:\test.mdb'<br />exec('SELECT a.* FROM opendatasource(''Microsoft.Jet.OLEDB.4.0'',<br />    <a href="mailto:'''+@fname+''';''admin'';''''">'''+@fname+''';''admin'';''''</a>, topics) as a ')</p>
		<p>SELECT * <br />FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',<br />  'Data Source="f:\northwind.mdb";Jet OLEDB:Database Password=123;User ID=Admin;Password=;')...产品</p>
		<p>*********************  导入 xml　文件</p>
		<p>DECLARE @idoc int<br />DECLARE @doc varchar(1000)<br />--sample XML document．BR&gt;  SET @doc ='<br />&lt; root&gt; <br />  &lt; Customer cid= "C1" name="Janine" city="Issaquah"&gt; <br />      &lt; Order oid="O1" date="1/20/1996" amount="3.5" /&gt; <br />      &lt; Order oid="O2" date="4/30/1997" amount="13.4"&gt; Customer was very satisfied<br />      &lt; /Order&gt; <br />   &lt; /Customer&gt; <br />   &lt; Customer cid="C2" name="Ursula" city="Oelde" &gt; <br />      &lt; Order oid="O3" date="7/14/1999" amount="100" note="Wrap it blue <br />             white red"&gt; <br />            &lt; Urgency&gt; Important&lt; /Urgency&gt; <br />            Happy Customer.<br />      &lt; /Order&gt; <br />      &lt; Order oid="O4" date="1/20/1996" amount="10000"/&gt; <br />   &lt; /Customer&gt; <br />&lt; /root&gt; <br />'<br />-- Create an internal representation of the XML document．<br />EXEC sp_xml_preparedocument．<a href="mailto:nbsp@idoc">nbsp@idoc</a> OUTPUT, @doc</p>
		<p>-- Execute a SELECT statement using OPENXML rowset provider.<br />SELECT *<br />FROM OPENXML (@idoc, '/root/Customer/Order', 1)<br />      WITH (oid     char(5), <br />            amount  float, <br />            comment ntext 'text()')<br />EXEC sp_xml_removedocument．<a href="mailto:nbsp@idoc">nbsp@idoc</a></p>
		<p>???????</p>
		<p>/**********************Excel导到Txt****************************************/<br />想用<br />select * into opendatasource(...) from opendatasource(...)<br />实现将一个Excel文件内容导入到一个文本文件</p>
		<p>假设Excel中有两列，第一列为姓名，第二列为很行帐号(16位)<br />且银行帐号导出到文本文件后分两部分，前8位和后8位分开。</p>
		<p>
				<br />邹健：<br />如果要用你上面的语句插入的话,文本文件必须存在,而且有一行:姓名,银行账号1,银行账号2<br />然后就可以用下面的语句进行插入<br />注意文件名和目录根据你的实际情况进行修改.</p>
		<p>insert into<br />opendatasource('MICROSOFT.JET.OLEDB.4.0'<br />,'Text;HDR=Yes;DATABASE=C:\'<br />)...[aa#txt]<br />--,aa#txt)<br />--*/<br />select 姓名,银行账号1=left(银行账号,8),银行账号2=right(银行账号,8) <br />from <br />opendatasource('MICROSOFT.JET.OLEDB.4.0'<br />,'Excel 5.0;HDR=YES;IMEX=2;DATABASE=c:\a.xls'<br />--,Sheet1$)<br />)...[Sheet1$]</p>
		<p>如果你想直接插入并生成文本文件,就要用bcp</p>
		<p>declare @sql varchar(8000),@tbname varchar(50)</p>
		<p>--首先将excel表内容导入到一个全局临时表<br />select @tbname='[##temp'+cast(newid() as varchar(40))+']'<br />,@sql='select 姓名,银行账号1=left(银行账号,8),银行账号2=right(银行账号,8) <br />into <a href="mailto:'+@tbname+'">'+@tbname+'</a> from <br />opendatasource(''MICROSOFT.JET.OLEDB.4.0''<br />,''Excel 5.0;HDR=YES;IMEX=2;DATABASE=c:\a.xls''<br />)...[Sheet1$]'<br />exec(@sql)</p>
		<p>--然后用bcp从全局临时表导出到文本文件<br />set @sql='bcp "<a href="mailto:'+@tbname+'">'+@tbname+'</a>" out "c:\aa.txt" /S"(local)" /P"" /c'<br />exec master..xp_cmdshell @sql</p>
		<p>--删除临时表<br />exec('drop table <a href="mailto:'+@tbname">'+@tbname</a>)</p>
		<p>
				<br />/********************导整个数据库*********************************************/</p>
		<p>用bcp实现的存储过程</p>
		<p>
				<br />/*<br />实现数据导入/导出的存储过程<br />         根据不同的参数,可以实现导入/导出整个数据库/单个表<br />调用示例:<br />--导出调用示例<br />----导出单个表<br />exec file2table 'zj','','','xzkh_sa..地区资料','c:\zj.txt',1<br />----导出整个数据库<br />exec file2table 'zj','','','xzkh_sa','C:\docman',1</p>
		<p>--导入调用示例<br />----导入单个表<br />exec file2table 'zj','','','xzkh_sa..地区资料','c:\zj.txt',0<br />----导入整个数据库<br />exec file2table 'zj','','','xzkh_sa','C:\docman',0</p>
		<p>*/<br />if exists(select 1 from sysobjects where name='File2Table' and objectproperty(id,'IsProcedure')=1)<br />drop procedure File2Table<br />go<br />create procedure File2Table<br />@servername varchar(200)  --服务器名<br />,@username varchar(200)   --用户名,如果用NT验证方式,则为空''<br />,@password varchar(200)   --密码<br />,@tbname varchar(500)   --数据库.dbo.表名,如果不指定:.dbo.表名,则导出数据库的所有用户表<br />,@filename varchar(1000)  --导入/导出路径/文件名,如果@tbname参数指明是导出整个数据库,则这个参数是文件存放路径,文件名自动用表名.txt<br />,@isout bit      --1为导出,0为导入<br />as<br />declare @sql varchar(8000)</p>
		<p>if @tbname like '%.%.%' --如果指定了表名,则直接导出单个表<br />begin<br />set @sql='bcp <a href="mailto:'+@tbname">'+@tbname</a><br />  +case when @isout=1 then ' out ' else ' in ' end<br />  +' "<a href="mailto:'+@filename+'">'+@filename+'</a>" /w'<br />  +' /S <a href="mailto:'+@servername">'+@servername</a><br />  +case when isnull(@username,'')='' then '' else ' /U <a href="mailto:'+@username">'+@username</a> end<br />  +' /P '+isnull(@password,'')<br />exec master..xp_cmdshell @sql<br />end<br />else<br />begin --导出整个数据库,定义游标,取出所有的用户表<br />declare @m_tbname varchar(250)<br />if right(@filename,1)&lt; &gt; '\' set @filename=@filename+'\'</p>
		<p>set @m_tbname='declare #tb cursor for select name from <a href="mailto:'+@tbname+'..sysobjects">'+@tbname+'..sysobjects</a> where xtype=''U'''<br />exec(@m_tbname)<br />open #tb<br />fetch next from #tb into @m_tbname<br />while @@fetch_status=0<br />begin<br />  set @sql='bcp <a href="mailto:'+@tbname+'..'+@m_tbname">'+@tbname+'..'+@m_tbname</a><br />   +case when @isout=1 then ' out ' else ' in ' end<br />   +' "<a href="mailto:'+@filename+@m_tbname+'.txt">'+@filename+@m_tbname+'.txt</a> " /w'<br />   +' /S <a href="mailto:'+@servername">'+@servername</a><br />   +case when isnull(@username,'')='' then '' else ' /U <a href="mailto:'+@username">'+@username</a> end<br />   +' /P '+isnull(@password,'')<br />  exec master..xp_cmdshell @sql<br />  fetch next from #tb into @m_tbname<br />end<br />close #tb<br />deallocate #tb <br />end<br />go</p>
		<p>
				<br />/************* Oracle **************/<br />EXEC sp_addlinkedserver 'OracleSvr', <br />   'Oracle 7.3', <br />   'MSDAORA', <br />   'ORCLDB'<br />GO</p>
		<p>delete from openquery(mailser,'select *  from yulin')</p>
		<p>select *  from openquery(mailser,'select *  from yulin')</p>
		<p>update openquery(mailser,'select * from  yulin where id=15')set disorder=555,catago=888</p>
		<p>insert into openquery(mailser,'select disorder,catago from  yulin')values(333,777)</p>
		<p>补充：</p>
		<p>对于用bcp导出,是没有字段名的.</p>
		<p>用openrowset导出,需要事先建好表.</p>
		<p>用openrowset导入,除ACCESS及EXCEL外,均不支持非本机数据导入</p>
		<p>/*<br />功能 :  Access To DBF<br />ADOConnection2 =&amp;gt; Access<br />*/<br />sql = "SELECT * INTO jyjh in \"c:\\temp\"[dbase 5.0;] FROM jyjh";<br />ADOConnection2-&amp;gt;Execute(sql);</p>
		<p>c:\temp\aaa.dbf to Access,<br />ADOConnection 指向Access<br />语句是  select * into bbb from aaa in 'c:\temp' 'dbase 5.0;'</p>
		<p>在Form上放一个ADOConnection,连结指向目标Access库<br />比如txt文件在c:\temp\aaaa.txt<br />就执行<br />ADOConnection.Connected := True;<br />ADOConnection.Execute('Select * Into abcd From [Text;Database=c:\temp].aaaa.txt');</p>
		<p>将Oracle导入到文本文件<br />连接串<br />Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp;Extended Properties="text;HDR=YES;";Persist Security Info=False<br />SQL语句<br />SELECT * into aaa.txt  FROM Tab1 IN [ODBC]<br />[ODBC;Driver={Microsoft ODBC for Oracle};UID=oracle;PWD=oracle;SERVER=yourdata;]</p>
		<p>将Oracle导入到Access<br />连接串<br />Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp\db1.mdb;Persist Security Info=False<br />SQL语句<br />SELECT * into tablename  FROM Tab1 IN [ODBC]<br />[ODBC;Driver={Microsoft ODBC for Oracle};UID=oracle;PWD=oracle;SERVER=yourdata;]</p>
		<p>DBase 5.0<br />DBASE IV<br />FoxPro 3.0<br />Paradox 7.X<br />Excel 8.0<br />text;HDR=YES;FMT=Delimited</p>
		<p>SELECT * into aaa<br />FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',<br />'Data Source="c:\temp\";User ID=Admin;Password=;Extended properties=Text')...[bb#txt]</p>
		<p>Excel联接ADO串<br />Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\temp\a.xls;Extended <br />Properties="Excel 8.0;HDR=Yes;";Persist Security Info=False<br />Extended Properties参数属性这样写 Excel 5.0;HDR=YES;IMEX=1<br />IMEX=1就是指混合型转换为文本<br />SQLServer从Excel取数<br />SELECT * <br />FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="C:\temp\b.xls";Extended Properties="Excel 5.0;HDR=Yes;";Persist Security Info=False')...sheet1$</p>
		<p>将SQLServer导入到文本文件<br />连接串<br />Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp;Extended Properties="text;HDR=YES;";Persist Security Info=False<br />SQL语句<br />SELECT * into aaa.txt  FROM Tab1 IN [ODBC]<br />[ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;]<br />要改变分隔符，可以修改<br />Schema.ini文件。该文件中指明分割符，如： <br />    [yourfile.txt] <br />    ... <br />    Format=Delimited(|) <br />更详细的例子可以参考：微软的Knowledge Base的文章："Q149090 CC: How to Use Schema.ini for Accessing Text Data"和微软的Knowledge Base的文章："Q187670 OWT Use RDO and ODBC Text Driver to Open a Delimited Text"。 </p>
		<p>txt导入SQLServer<br />select * from OpenRowset('MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.csv)};<br />DefaultDir=c:\temp;','select * from aaaa.txt')</p>
		<p>sql server导出到access<br />ADOConnection 指向Access<br />SELECT * into table  FROM Tab1 IN [ODBC]<br />[ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;]</p>
		<p>sql server导出到excel<br />ADOConnection 指向excel, 用Jet4.0 ,Extended properties设为Excel 8.0<br />SELECT * into table  FROM Tab1 IN [ODBC]<br />[ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;]</p>
		<p>insert into gds_order select * from gds_order<br />in [ODBC][ODBC;dsn=jbcmis;User Name=informix;password=informix;]</p>
		<p>用SQLServer连接DBF<br />在SQLServer中执行<br />SELECT * into bmk<br />FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',<br />  'Data Source="e:\share";User ID=Admin;Password=;Extended properties=dBase 5.0')...bmk<br />这样就可以把e:\share中的bmk.dbf表导入到Sqlserver中，</p>
		<p>Access 到 Access <br />select * into aaa from aaa in 'c::\temp\b.mdb'<br />用ADOConnection.Execute执行</p>
		<p>对foxpro 6.0采取odbc,建立一个数据源<br />insert into t_d(申请日期,发票序号,序号,日期,发票号,发票种类,发货单id,申请单编号,片区,部门,销售员,客户代码,客户单位,开票名称,客户邮编,客户地址,客户电话,客户税号,客户开户行,客户帐号,开票单位,邮编,地址,电话,税号,开户行,帐号,编号,品名,规格,单位,单价,数量,金额,不含税单价,不含税金额,税额,底价,税率,税率1,红票金额,红票号,发票收件人,收件人地址,收件人电话,收件人邮编,备注,打印标志,制单,复核,审核,标志1,标志,管理模式,警示标志,结算单价,结算标准,扣率,冲减金额,回款金额,少回款,回款差额,欠款金额,欠款数量,来款单序号,主管部门,退票标志,退票日期,发货日期,申请号)<br />SELECT 申请日期,发票序号,序号,日期,发票号,发票种类,发货单id,申请单编号,片区,部门,销售员,客户代码,客户单位,开票名称,客户邮编,客户地址,客户电话,客户税号,客户开户</p>
<img src ="http://www.cnitblog.com/iniboy/aggbug/14504.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/iniboy/" target="_blank">青</a> 2006-08-01 12:07 <a href="http://www.cnitblog.com/iniboy/archive/2006/08/01/14504.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>