﻿<?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-This Is A FineDay-随笔分类-DB</title><link>http://www.blogjava.net/fine/category/19862.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 02 Mar 2011 03:41:34 GMT</lastBuildDate><pubDate>Wed, 02 Mar 2011 03:41:34 GMT</pubDate><ttl>60</ttl><item><title>oracle批量fetch的sql语句 bulk collect into  </title><link>http://www.blogjava.net/fine/archive/2011/02/22/344815.html</link><dc:creator>Peter Pan</dc:creator><author>Peter Pan</author><pubDate>Tue, 22 Feb 2011 03:39:00 GMT</pubDate><guid>http://www.blogjava.net/fine/archive/2011/02/22/344815.html</guid><wfw:comment>http://www.blogjava.net/fine/comments/344815.html</wfw:comment><comments>http://www.blogjava.net/fine/archive/2011/02/22/344815.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fine/comments/commentRss/344815.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fine/services/trackbacks/344815.html</trackback:ping><description><![CDATA[declare 
cursor c1 is select * from t_depart; 
type v_depart_type is table of t_depart%rowtype ; 
v_depart v_depart_type ; 
begin 
open c1; 
fetch c1 bulk collect into v_depart ; --limit batch_cnt;
for i in 1..v_depart.count loop 
dbms_output.put_line(v_depart(i).depart_code||' '|| 
v_depart(i).depart_name); 
end loop; 
close c1; 
end; 
<img src ="http://www.blogjava.net/fine/aggbug/344815.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fine/" target="_blank">Peter Pan</a> 2011-02-22 11:39 <a href="http://www.blogjava.net/fine/archive/2011/02/22/344815.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle实现Tree(2)</title><link>http://www.blogjava.net/fine/archive/2010/10/13/335017.html</link><dc:creator>Peter Pan</dc:creator><author>Peter Pan</author><pubDate>Wed, 13 Oct 2010 04:38:00 GMT</pubDate><guid>http://www.blogjava.net/fine/archive/2010/10/13/335017.html</guid><wfw:comment>http://www.blogjava.net/fine/comments/335017.html</wfw:comment><comments>http://www.blogjava.net/fine/archive/2010/10/13/335017.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fine/comments/commentRss/335017.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fine/services/trackbacks/335017.html</trackback:ping><description><![CDATA[ 
select SYS_CONNECT_BY_PATH(no, '/'),
       level,
       CONNECT_BY_ISLEAF,
       CONNECT_BY_ROOT no,
       cr.*
  from cr
where level >2
start with cr.parent_no is null 
connect by NOCYCLE  prior cr.no = cr.parent_no1<img src ="http://www.blogjava.net/fine/aggbug/335017.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fine/" target="_blank">Peter Pan</a> 2010-10-13 12:38 <a href="http://www.blogjava.net/fine/archive/2010/10/13/335017.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORACLE shared server与dedicated server</title><link>http://www.blogjava.net/fine/archive/2010/02/03/311795.html</link><dc:creator>Peter Pan</dc:creator><author>Peter Pan</author><pubDate>Wed, 03 Feb 2010 05:48:00 GMT</pubDate><guid>http://www.blogjava.net/fine/archive/2010/02/03/311795.html</guid><wfw:comment>http://www.blogjava.net/fine/comments/311795.html</wfw:comment><comments>http://www.blogjava.net/fine/archive/2010/02/03/311795.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fine/comments/commentRss/311795.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fine/services/trackbacks/311795.html</trackback:ping><description><![CDATA[Oracle Dedicated server

. 用户进程和服务器进程是分开的。
. 每个用户进程都有自己的服务器进程。
. 用户进程和服务器进程可在不同的机器上运行，以利用分布式处理的优势。
. 用户进程和服务器进程的比率是1 比1。
. 即使用户进程不发出数据库请求，专用服务器也存在，只是保持空闲状态。
此处所用的程序接口取决于用户进程和专用服务器进程是否在同一台机器上。如果在同一
机器上，进程间的程序接口将使用主机操作系统的交互进程通信(IPC) 机制。

Oracle Shared Server

. 在Oracle Shared Server 体系结构下，客户机-用户进程最终会与调度程序建立连接。
. PMON 进程向监听程序注册调度程序的位置和负载，使监听程序能够将请求转发给占用率最低的调度程序。服务注册不要求在listener.ora 文件中进行配置。
. 一个调度程序可同时支持多个客户机连接。每个客户机连接都使用一个虚拟线路。虚拟线路是一块共享内存，调度程序将它用于客户机数据库连接请求与答复。


scott@ORCL> show parameter shared_server

NAME                                 TYPE        VALUE
------------------------------------ ----------- --------------------
max_shared_servers                   integer
shared_server_sessions               integer
shared_servers                       integer     1

shared_servers大于0即支持共享服务器连接


scott@ORCL> show parameter dispatchers

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
dispatchers                          string      (PROTOCOL=TCP) (SERVICE=orclXDB)


ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
      (SERVER =DEDICATED)
    )
  )

ORCL1 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orclXDB)
      (SERVER =SHARED)
    )
  )<img src ="http://www.blogjava.net/fine/aggbug/311795.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fine/" target="_blank">Peter Pan</a> 2010-02-03 13:48 <a href="http://www.blogjava.net/fine/archive/2010/02/03/311795.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>grant oracle debug</title><link>http://www.blogjava.net/fine/archive/2008/11/17/240910.html</link><dc:creator>Peter Pan</dc:creator><author>Peter Pan</author><pubDate>Mon, 17 Nov 2008 01:39:00 GMT</pubDate><guid>http://www.blogjava.net/fine/archive/2008/11/17/240910.html</guid><wfw:comment>http://www.blogjava.net/fine/comments/240910.html</wfw:comment><comments>http://www.blogjava.net/fine/archive/2008/11/17/240910.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fine/comments/commentRss/240910.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fine/services/trackbacks/240910.html</trackback:ping><description><![CDATA[
		<p>session跟踪</p>
		<p>在plsql developer ，选择procedure》 test 》start debug</p>
		<br />
		<p>SQL&gt; grant debug connect session to mw;</p>
		<p>SQL&gt; grant select on v_$session to mw;</p>
		<p>授权成功。</p>
		<p>SQL&gt; grant select on v_$sesstat to mw;</p>
		<p>授权成功。</p>
		<p>SQL&gt; grant select on v_$statname to mw;</p>
		<p>授权成功。</p>
		<p>任务完成。</p>
<img src ="http://www.blogjava.net/fine/aggbug/240910.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fine/" target="_blank">Peter Pan</a> 2008-11-17 09:39 <a href="http://www.blogjava.net/fine/archive/2008/11/17/240910.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle分区表及分区索引1(转)</title><link>http://www.blogjava.net/fine/archive/2008/07/09/213718.html</link><dc:creator>Peter Pan</dc:creator><author>Peter Pan</author><pubDate>Wed, 09 Jul 2008 09:14:00 GMT</pubDate><guid>http://www.blogjava.net/fine/archive/2008/07/09/213718.html</guid><wfw:comment>http://www.blogjava.net/fine/comments/213718.html</wfw:comment><comments>http://www.blogjava.net/fine/archive/2008/07/09/213718.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fine/comments/commentRss/213718.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fine/services/trackbacks/213718.html</trackback:ping><description><![CDATA[
		<font size="2">关于分区表和分区索引(About Partitioned Tables and Indexes)对于10gR2而言，基本上可以分成几类：</font>
		<ul>
				<li>
						<font size="2">　　 Range(范围)分区 </font>
				</li>
				<li>
						<font size="2">　　 Hash(哈希)分区 </font>
				</li>
				<li>
						<font size="2">　　 List(列表)分区 </font>
				</li>
				<li>
						<font size="2">　　 以及组合分区：Rang</font>
						<font color="#16387c" size="2">e-</font>
						<font size="2">Hash,Range-List。</font>
				</li>
		</ul>
		<p>
				<font size="2">　　对于表而言(常规意义上的堆组织表)，上述分区形式都可以应用(甚至可以对某个分区指定compress属性)，只不过分区依赖列不能是lob,long之类数据类型，每个表的分区或子分区数的总数不能超过1023个。</font>
		</p>
		<p>
				<font size="2">　　对于索引组织表，只能够支持普通分区方式，不支持组合分区，常规表的限制对于索引组织表同样有效，除此之外呢，还有一些其实的限制，比如要求索引组织表的分区依赖列必须是主键才可以等。</font>
		</p>
		<p>
				<font size="2">　　注：本篇所有示例仅针对常规表，即堆组织表!</font>
		</p>
		<p>
				<font size="2">　　对于索引，需要区分创建的是全局索引，或本地索引：</font>
		</p>
		<p>
				<font size="2">　　l 全局索引(global index)：即可以分区，也可以不分区。即可以建range分区，也可以建hash分区，即可建于分区表，又可创建于非分区表上，就是说，全局索引是完全独立的，因此它也需要我们更多的维护操作。</font>
		</p>
		<p>
				<font size="2">　　l 本地索引(local index)：其分区形式与表的分区完全相同，依赖列相同，存储属性也相同。对于本地索引，其索引分区的维护自动进行，就是说你add/drop/split/</font>
				<font color="#16387c" size="2">truncate</font>
				<font size="2">表的分区时，本地索引会自动维护其索引分区。</font>
		</p>
		<p>
				<font size="2">　　</font>
				<font color="#16387c" size="2">Oracle</font>
				<font size="2">建议如果单个表超过2G就最好对其进行分区，对于大表创建分区的好处是显而易见的，这里不多论述why，而将重点放在when以及how。</font>
		</p>
		<p>
				<font size="2">　　<strong>WHEN</strong></font>
		</p>
		<p>
				<font size="2">　　一、When使用Range分区</font>
		</p>
		<p>
				<font size="2">　　Range分区呢是应用范围比较广的表分区方式，它是以列的值的范围来做为分区的划分条件，将记录存放到列值所在的range分区中，比如按照时间划分，2008年1季度的数据放到a分区，08年2季度的数据放到b分区，因此在创建的时候呢，需要你指定基于的列，以及分区的范围值，如果某些记录暂无法预测范围，可以创建maxvalue分区，所有不在指定范围内的记录都会被存储到maxvalue所在分区中，并且支持指定多列做为依赖列，后面在讲how的时候会详细谈到。</font>
		</p>
		<p>
				<font size="2">　　二、When使用Hash分区</font>
		</p>
		<p>
				<font size="2">　　通常呢，对于那些无法有效划分范围的表，可以使用hash分区，这样对于提高性能还是会有一定的帮助。hash 分区会将表中的数据平均分配到你指定的几个分区中，列所在分区是依据分区列的hash值自动分配，因此你并不能控制也不知道哪条记录会被放到哪个分区中，hash分区也可以支持多个依赖列。</font>
		</p>
		<p>
				<font size="2">　　三、When使用List分区</font>
		</p>
		<p>
				<font size="2">　　List分区与range分区和hash分区都有类似之处，该分区与range分区类似的是也需要你指定列的值，但这又不同与range分区的范围式列值---其分区值必须明确指定，也不同与hash分区---通过明确指定分区值，你能控制记录存储在哪个分区。它的分区列只能有一个，而不能像range或者hash分区那样同时指定多个列做为分区依赖列，不过呢，它的单个分区对应值可以是多个。</font>
		</p>
		<p>
				<font size="2">　　你在分区时必须确定分区列可能存在的值，一旦插入的列值不在分区范围内，则插入/更新就会失败，因此通常建议使用list分区时，要创建一个default分区存储那些不在指定范围内的记录，类似range分区中的maxvalue分区。</font>
		</p>
		<p>
				<font size="2">　　四、When使用组合分区</font>
		</p>
		<p>
				<font size="2">　　如果某表按照某列分区之后，仍然较大，或者是一些其它的需求，还可以通过分区内再建子分区的方式将分区再分区，即组合分区的方式。</font>
		</p>
		<p>
				<font size="2">　　组合分区呢在10g中有两种：range-hash，range-list。注意顺序哟，根分区只能是range分区，子分区可以是hash分区或list分区。</font>
		</p>
		<p>
				<font size="2">　　提示：11g在组合分区功能这块有所增强，又推出了range-range,list-range,list-list,list-hash，这就相当于除hash外三种分区 </font> <br /><br /><strong>创建range-hash组合分区</strong></p>
		<p>　　语法如下：图 </p>
		<p>　　<img height="112" alt="" src="http://hk.kdmoney.com/it/UploadFiles_7072/200805/2008522182733120.gif" width="400" /></p>
		<p>　　<strong>需要我们指定的有：</strong></p>
		<p>　　 column_list:分区依赖列(支持多个，中间以逗号分隔);</p>
		<p>　　  subpartition:子分区方式，有两处：</p>
		<p>　　 Subpartition_by_list:语法与list分区完全相同，只不过把关键字partition换成subpartition</p>
		<p>　　  Subpartition_by_hash:语法与hash分区完全相同，只不过把关键字partition换成subpartition</p>
		<p>　　  partition:分区名称;</p>
		<p>　　  range_partition_values_clause:与range分区范围值的语法;</p>
		<p>　　 tablespace_clause:分区的存储属性，例如所在表空间等属性(可为空)，默认继承基表所在表空间的属性。</p>
		<p>　　组合分区相对于普通分区，语法上稍稍复杂了一些，但也正因如此，其子分区的创建可以非常灵活，下面分别举几个例子(注：仅示例，并非穷举所有形式)</p>
		<p>　　<strong>①　为所有分区各创建4个hash子分区</strong></p>
		<p>
				<br />　　  create table t_partition_rh (id number,name varchar2(50)) <br />　　 partition by range(id) subpartition by hash(name) <br />　　  subpartitions 4 store in (tbspart01, tbspart02, tbspart03,tbspart04)( <br />　　 partition t_r_p1 values less than (10) tablespace tbspart01, <br />　　  partition t_r_p2 values less than (20) tablespace tbspart02, <br />　　  partition t_r_p3 values less than (30) tablespace tbspart03, <br />　　  partition t_r_pd values less than (maxvalue) tablespace tbspart04); <br />　　表已创建。 </p>
<img src ="http://www.blogjava.net/fine/aggbug/213718.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fine/" target="_blank">Peter Pan</a> 2008-07-09 17:14 <a href="http://www.blogjava.net/fine/archive/2008/07/09/213718.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>行列转置</title><link>http://www.blogjava.net/fine/archive/2008/05/19/201358.html</link><dc:creator>Peter Pan</dc:creator><author>Peter Pan</author><pubDate>Mon, 19 May 2008 04:25:00 GMT</pubDate><guid>http://www.blogjava.net/fine/archive/2008/05/19/201358.html</guid><wfw:comment>http://www.blogjava.net/fine/comments/201358.html</wfw:comment><comments>http://www.blogjava.net/fine/archive/2008/05/19/201358.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fine/comments/commentRss/201358.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fine/services/trackbacks/201358.html</trackback:ping><description><![CDATA[
		<p>CREATE TABLE  a as (select 1 id ,'項目一' XMMC,'XMONE' CODE,1 RYID FROM DUAL <br />           UNION <br />           select 2 id ,'項目二' XMMC,'XMTWO' CODE,1 RYID FROM DUAL <br />           UNION <br />           select 3 id ,'項目三' XMMC,'XMTHREE' CODE,1 RYID FROM DUAL <br />           UNION <br />           select 4 id ,'項目一' XMMC,'XMONE' CODE,2 RYID FROM DUAL <br />           ) <br />WITH B AS (SELECT 1 ID,'張三' NAME FROM DUAL <br />           UNION <br />           SELECT 2 ID,'李四' NAME FROM DUAL           <br />           ) <br />SELECT C.RYID,<br />       B.NAME,<br />       MAX(DECODE(RN, 1, XMMC, NULL)) XMONE,<br />       MAX(DECODE(RN, 2, XMMC, NULL)) XMTWO,<br />       MAX(DECODE(RN, 3, XMMC, NULL)) XMTHREE<br />  FROM (SELECT RYID,<br />               XMMC,<br />               CODE,<br />               ROW_NUMBER() OVER(PARTITION BY RYID ORDER BY RYID) RN  --以RYID分组后内部的排序<br />          FROM A) C,<br />       B<br /> WHERE C.RYID = B.ID<br /> GROUP BY C.RYID, B.NAME<br /> ORDER BY C.RYID</p>
		<p>--     RYID NAME XMONE  XMTWO  XMTHREE <br />---------- ---- ------ ------ ------- <br />--         1 張三 項目一 項目二 項目三 <br />--         2 李四 項目一         <br /></p>
<img src ="http://www.blogjava.net/fine/aggbug/201358.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fine/" target="_blank">Peter Pan</a> 2008-05-19 12:25 <a href="http://www.blogjava.net/fine/archive/2008/05/19/201358.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>创建带参数视图</title><link>http://www.blogjava.net/fine/archive/2008/04/20/194314.html</link><dc:creator>Peter Pan</dc:creator><author>Peter Pan</author><pubDate>Sun, 20 Apr 2008 07:00:00 GMT</pubDate><guid>http://www.blogjava.net/fine/archive/2008/04/20/194314.html</guid><wfw:comment>http://www.blogjava.net/fine/comments/194314.html</wfw:comment><comments>http://www.blogjava.net/fine/archive/2008/04/20/194314.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fine/comments/commentRss/194314.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fine/services/trackbacks/194314.html</trackback:ping><description><![CDATA[
		<div class="t_msgfont" id="message3377365">
				<blockquote>
						<pre>
								<smallfont>
										<code>
												<span style="COLOR: #000000">
														<span style="COLOR: #0000bb">SQL</span>
														<span style="COLOR: #007700">&gt;</span>
														<span style="COLOR: #0000bb">create table test</span>
														<span style="COLOR: #007700">(</span>
														<span style="COLOR: #0000bb">name varchar2</span>
														<span style="COLOR: #007700">(</span>
														<span style="COLOR: #0000bb">4</span>
														<span style="COLOR: #007700">),</span>
														<span style="COLOR: #0000bb">text  varchar2</span>
														<span style="COLOR: #007700">(</span>
														<span style="COLOR: #0000bb">9</span>
														<span style="COLOR: #007700">));<br /><br /><br /><br /></span>
														<span style="COLOR: #0000bb">SQL</span>
														<span style="COLOR: #007700">&gt;</span>
														<span style="COLOR: #0000bb">create view test_view </span>
														<span style="COLOR: #007700">as </span>
														<span style="COLOR: #0000bb">select text from test where name</span>
														<span style="COLOR: #007700">=</span>
														<span style="COLOR: #0000bb">userenv</span>
														<span style="COLOR: #007700">(</span>
														<span style="COLOR: #dd0000">'client_info'</span>
														<span style="COLOR: #007700">);<br /><br /><br /><br /></span>
														<span style="COLOR: #0000bb">SQL</span>
														<span style="COLOR: #007700">&gt;</span>
														<span style="COLOR: #0000bb">insert into test values</span>
														<span style="COLOR: #007700">(</span>
														<span style="COLOR: #dd0000">'zxx'</span>
														<span style="COLOR: #007700">,</span>
														<span style="COLOR: #dd0000">'boy'</span>
														<span style="COLOR: #007700">);<br /><br /></span>
														<span style="COLOR: #0000bb">SQL</span>
														<span style="COLOR: #007700">&gt;</span>
														<span style="COLOR: #0000bb">insert into test values</span>
														<span style="COLOR: #007700">(</span>
														<span style="COLOR: #dd0000">'taw'</span>
														<span style="COLOR: #007700">,</span>
														<span style="COLOR: #dd0000">'gril'</span>
														<span style="COLOR: #007700">);<br /><br /></span>
														<span style="COLOR: #0000bb">SQL</span>
														<span style="COLOR: #007700">&gt;</span>
														<span style="COLOR: #0000bb">commit</span>
														<span style="COLOR: #007700">;<br /><br /><br /><br /></span>
														<span style="COLOR: #0000bb">SQL</span>
														<span style="COLOR: #007700">&gt;</span>
														<span style="COLOR: #0000bb">exec dbms_application_info</span>
														<span style="COLOR: #007700">.</span>
														<span style="COLOR: #0000bb">set_client_info</span>
														<span style="COLOR: #007700">(</span>
														<span style="COLOR: #dd0000">'zxx'</span>
														<span style="COLOR: #007700">);<br /><br /></span>
														<span style="COLOR: #0000bb">SQL</span>
														<span style="COLOR: #007700">&gt;</span>
														<span style="COLOR: #0000bb">select </span>
														<span style="COLOR: #007700">* </span>
														<span style="COLOR: #0000bb">from test_view</span>
														<span style="COLOR: #007700">;<br /><br /><br /><br /></span>
														<span style="COLOR: #0000bb">TEXT<br /><br /></span>
														<span style="COLOR: #007700">---------<br /><br /></span>
														<span style="COLOR: #0000bb">boy<br /><br /></span>
														<span style="COLOR: #007700">--<br /><br /><br /><br /><br /><br /></span>
														<span font="" s<="">a<br />create or replace type emp_type<br />as object (<br />empno number(4),<br />ename varchar2(10)<br />);<br />/<br />create or replace type emp_type_table as table of emp_type;<br />/<br />create or replace function emp_of_dept(p_deptno in number)<br />return emp_type_table<br />pipelined as<br />l_emp_type emp_type;<br />begin<br />for l_myrow in (select empno, ename from emp<br />where deptno = p_deptno) loop<br />l_emp_type := emp_type(l_myrow.empno, l_myrow.ename);<br />pipe row (l_emp_type);<br />end loop;<br />return;<br />end emp_of_dept;<br />/<br /><br />select * from table(emp_of_dept(10));<br />EMPNO ENAME<br />---------- ----------<br />7782 CLARK<br />7839 KING<br />7934 MILLER<br /><br />select * from table(emp_of_dept(30));<br />EMPNO ENAME<br />---------- ----------<br />7499 ALLEN<br />7521 WARD<br />7654 MARTIN<br />7698 BLAKE<br />7844 TURNER<br />7900 JAMES<br /><br />Tom - what do you think about this? <br /><br />Followup: <br />I think it is alot more code then:<br /><br />create or replace <br />procedure foo( p_deptno in number, p_result_set out sys_refcursor )<br />as<br />begin<br />open p_result_set for<br />select empno, ename from emp where deptno = p_deptno;<br />end;<br /><br />and having the client (which is doing Oracle stuff anyway) issue <br /><br />begin foo( :n, :m ); end;<br /><br /><br />It'll be less performant as well. <br />Neat "trick" but not best practice. <br /><br />create or replace function f_test(p_num in number)<br />return sys_refcursor<br />is<br />Result sys_refcursor;<br />begin<br />open Result for<br />select * from t1 t where t1.c1=p_num;<br />return(Result);<br />exception<br />when others then<br />raise;<br />end;<br /><br />select f_test(1) from dual;</span>
												</span>
										</code>
								</smallfont>
						</pre>
				</blockquote>
		</div>
<img src ="http://www.blogjava.net/fine/aggbug/194314.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fine/" target="_blank">Peter Pan</a> 2008-04-20 15:00 <a href="http://www.blogjava.net/fine/archive/2008/04/20/194314.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle exp/imp导出导入工具的使用(转)</title><link>http://www.blogjava.net/fine/archive/2008/04/16/193372.html</link><dc:creator>Peter Pan</dc:creator><author>Peter Pan</author><pubDate>Wed, 16 Apr 2008 03:43:00 GMT</pubDate><guid>http://www.blogjava.net/fine/archive/2008/04/16/193372.html</guid><wfw:comment>http://www.blogjava.net/fine/comments/193372.html</wfw:comment><comments>http://www.blogjava.net/fine/archive/2008/04/16/193372.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fine/comments/commentRss/193372.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fine/services/trackbacks/193372.html</trackback:ping><description><![CDATA[
		<strong>
				<font color="#0000ff">一. 导出工具 exp<span style="DISPLAY: none">wQeLinux联盟</span><br /><span style="DISPLAY: none">wQeLinux联盟</span><br /></font>
		</strong>1. 它是操作系统下一个可执行的文件<strong> 存放目录/ORACLE_HOME/bin</strong><span style="DISPLAY: none">wQeLinux联盟</span><br /><span style="DISPLAY: none">wQeLinux联盟</span><br />   exp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移<span style="DISPLAY: none">wQeLinux联盟</span><br />   <span style="DISPLAY: none">wQeLinux联盟</span><br />   它有三种模式：<span style="DISPLAY: none">wQeLinux联盟</span><br />       a.  用户模式： 导出用户所有对象以及对象中的数据；<span style="DISPLAY: none">wQeLinux联盟</span><br />       b.  表模式： 导出用户所有表或者指定的表；<span style="DISPLAY: none">wQeLinux联盟</span><br />       c.  整个数据库： 导出数据库中所有对象。<span style="DISPLAY: none">wQeLinux联盟</span><br /><span style="DISPLAY: none">wQeLinux联盟</span><br /><strong>2. 导出工具exp交互式命令行方式的使用的例子</strong><span style="DISPLAY: none">wQeLinux联盟</span><br /><span style="DISPLAY: none">wQeLinux联盟</span><br />$<font color="#0000ff">exp test/test123@appdb</font><span style="DISPLAY: none">wQeLinux联盟</span><br />Enter array fetch buffer size: 4096 &gt; 回车<span style="DISPLAY: none">wQeLinux联盟</span><br />Export file: expdat.dmp &gt; <font color="#008000">m.dmp  生成导出的文件名</font><span style="DISPLAY: none">wQeLinux联盟</span><br />(1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U &gt; 3<span style="DISPLAY: none">wQeLinux联盟</span><br />Export table data (yes/no): yes &gt; 回车<span style="DISPLAY: none">wQeLinux联盟</span><br />Compress extents (yes/no): yes &gt; 回车<span style="DISPLAY: none">wQeLinux联盟</span><br />Export done in ZHS16GBK character set and ZHS16GBK NCHAR character set<span style="DISPLAY: none">wQeLinux联盟</span><br />About to export specified tables via Conventional Path ...<span style="DISPLAY: none">wQeLinux联盟</span><br />Table(T) or Partition(T:P) to be exported: (RETURN to quit) &gt; cmamenu  要导出的表名<span style="DISPLAY: none">wQeLinux联盟</span><br />. . exporting table                        CMAMENU       4336 rows exported<span style="DISPLAY: none">wQeLinux联盟</span><br />Table(T) or Partition(T:P) to be exported: (RETURN to quit) &gt;要导出的表名n<span style="DISPLAY: none">wQeLinux联盟</span><br />Table(T) or Partition(T:P) to be exported: (RETURN to quit) &gt; 回车<span style="DISPLAY: none">wQeLinux联盟</span><br />Export terminated successfully without warnings. <span style="DISPLAY: none">wQeLinux联盟</span><br /><span style="DISPLAY: none">wQeLinux联盟</span><br /><strong>3. 导出工具exp非交互式命令行方式的例子</strong><span style="DISPLAY: none">wQeLinux联盟</span><br /><span style="DISPLAY: none">wQeLinux联盟</span><br />$<font color="#0000ff">exp scott/tiger tables=(emp,dept) file=/directory/scott.dmp grants=y</font><span style="DISPLAY: none">wQeLinux联盟</span><br /><span style="DISPLAY: none">wQeLinux联盟</span><br />说明:把scott用户里两个表emp,dept导出到文件/directory/scott.dmp<span style="DISPLAY: none">wQeLinux联盟</span><br /><span style="DISPLAY: none">wQeLinux联盟</span><br />$<font color="#0000ff">exp scott/tiger tables=emp query=\"where job=\'salesman\' and sal\&lt;1600\" file=/directory/scott2.dmp</font><span style="DISPLAY: none">wQeLinux联盟</span><br /><span style="DISPLAY: none">wQeLinux联盟</span><br />说明:在exp里面加上导出emp的查询条件job='salesman' and sal&lt;1600<span style="DISPLAY: none">wQeLinux联盟</span><br />    <span style="DISPLAY: none">wQeLinux联盟</span><br />    (但我个人很少这样用,还是把满足条件的记录生成临时表后,再exp会方便一些)<span style="DISPLAY: none">wQeLinux联盟</span><br /><span style="DISPLAY: none">wQeLinux联盟</span><br />$<font color="#0000ff">exp parfile=username.par file=/directory1/username_1.dmp,/directory1/username_2.dmp filesize=2000M log=/directory2/username_exp.log</font><span style="DISPLAY: none">wQeLinux联盟</span><br /><span style="DISPLAY: none">wQeLinux联盟</span><br />参数文件username.par内容<span style="DISPLAY: none">wQeLinux联盟</span><br />userid=username/userpassword<span style="DISPLAY: none">wQeLinux联盟</span><br />buffer=8192000<span style="DISPLAY: none">wQeLinux联盟</span><br />compress=n<span style="DISPLAY: none">wQeLinux联盟</span><br />grants=y<span style="DISPLAY: none">wQeLinux联盟</span><br /><span style="DISPLAY: none">wQeLinux联盟</span><br />说明:username.par为导出工具exp用的参数文件,里面具体参数可以根据需要去修改<span style="DISPLAY: none">wQeLinux联盟</span><br /><span style="DISPLAY: none">wQeLinux联盟</span><br />     filesize指定生成的二进制备份文件的最大字节数<span style="DISPLAY: none">wQeLinux联盟</span><br />     <span style="DISPLAY: none">wQeLinux联盟</span><br />     (可用来解决某些OS下2G物理文件的限制及加快压缩速度和方便刻历史数据光盘等)<span style="DISPLAY: none">wQeLinux联盟</span><br /><span style="DISPLAY: none">wQeLinux联盟</span><br /><strong><font color="#0000ff">二.导入工具 imp</font></strong><span style="DISPLAY: none">wQeLinux联盟</span><br /><span style="DISPLAY: none">wQeLinux联盟</span><br />1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin<span style="DISPLAY: none">wQeLinux联盟</span><br /><span style="DISPLAY: none">wQeLinux联盟</span><br />imp导入工具将EXP形成的二进制系统文件导入到数据库中.<span style="DISPLAY: none">wQeLinux联盟</span><br /><span style="DISPLAY: none">wQeLinux联盟</span><br />   它有三种模式：<span style="DISPLAY: none">wQeLinux联盟</span><br />       a.  用户模式： 导出用户所有对象以及对象中的数据；<span style="DISPLAY: none">wQeLinux联盟</span><br />       b.  表模式： 导出用户所有表或者指定的表；<span style="DISPLAY: none">wQeLinux联盟</span><br />       c.  整个数据库： 导出数据库中所有对象。<span style="DISPLAY: none">wQeLinux联盟</span><br />       <span style="DISPLAY: none">wQeLinux联盟</span><br />   只有拥有IMP_FULL_DATABASE和DBA权限的用户才能做整个数据库导入<span style="DISPLAY: none">wQeLinux联盟</span><br />   <span style="DISPLAY: none">wQeLinux联盟</span><br />   imp步骤：<span style="DISPLAY: none">wQeLinux联盟</span><br />   (1) create table  (2) insert data  (3) create index (4) create triggers,constraints<span style="DISPLAY: none">wQeLinux联盟</span><br /><span style="DISPLAY: none">wQeLinux联盟</span><br /><strong>2.导入工具imp交互式命令行方式的例子</strong><span style="DISPLAY: none">wQeLinux联盟</span><br />$<font color="#0000ff"> imp</font><span style="DISPLAY: none">wQeLinux联盟</span><br />Import: Release 8.1.6.0.0 - Production on 星期五 12月 7 17:01:08 2001<span style="DISPLAY: none">wQeLinux联盟</span><br />(c) Copyright 1999 Oracle Corporation.  All rights reserved.<span style="DISPLAY: none">wQeLinux联盟</span><br />用户名:  <font color="#0000ff">test</font><span style="DISPLAY: none">wQeLinux联盟</span><br />口令:<font color="#0000ff">****</font><span style="DISPLAY: none">wQeLinux联盟</span><br />连接到: Oracle8i Enterprise Edition Release 8.1.6.0.0 - 64bit Production<span style="DISPLAY: none">wQeLinux联盟</span><br />With the Partitioning option<span style="DISPLAY: none">wQeLinux联盟</span><br />JServer Release 8.1.6.0.0 - Production<span style="DISPLAY: none">wQeLinux联盟</span><br />导入文件: expdat.dmp&gt; <font color="#0000ff">/tmp/m.dmp</font><span style="DISPLAY: none">wQeLinux联盟</span><br />输入插入缓冲区大小（最小为 8192 ) 30720&gt;<span style="DISPLAY: none">wQeLinux联盟</span><br />经由常规路径导出由EXPORT:V08.01.06创建的文件<span style="DISPLAY: none">wQeLinux联盟</span><br />警告: 此对象由 TEST 导出, 而不是当前用户<span style="DISPLAY: none">wQeLinux联盟</span><br />已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入<span style="DISPLAY: none">wQeLinux联盟</span><br />只列出导入文件的内容(yes/no)：no&gt;<span style="DISPLAY: none">wQeLinux联盟</span><br />由于对象已存在, 忽略创建错误(yes/no)：no&gt; <font color="#0000ff">yes</font><span style="DISPLAY: none">wQeLinux联盟</span><br />导入权限(yes/no)：yes&gt;<span style="DISPLAY: none">wQeLinux联盟</span><br />导入表数据(yes/no)：yes&gt;<span style="DISPLAY: none">wQeLinux联盟</span><br />导入整个导出文件(yes/no)：no&gt; <font color="#0000ff">yes</font><span style="DISPLAY: none">wQeLinux联盟</span><br />. 正在将TEST的对象导入到 SCOTT<span style="DISPLAY: none">wQeLinux联盟</span><br />. . 正在导入表                       "CMAMENU"       4336行被导入<span style="DISPLAY: none">wQeLinux联盟</span><br />成功终止导入，但出现警告。 <span style="DISPLAY: none">wQeLinux联盟</span><br /><span style="DISPLAY: none">wQeLinux联盟</span><br /><span style="DISPLAY: none">wQeLinux联盟</span><br /><strong>3.导入工具imp非交互式命令行方式的例子</strong><span style="DISPLAY: none">wQeLinux联盟</span><br /><span style="DISPLAY: none">wQeLinux联盟</span><br />$ imp system/manager fromuser=jones tables=(accts) <span style="DISPLAY: none">wQeLinux联盟</span><br />$ imp system/manager fromuser=scott tables=(emp,dept) <span style="DISPLAY: none">wQeLinux联盟</span><br />$ imp system/manager fromuser=scott touser=joe tables=emp <span style="DISPLAY: none">wQeLinux联盟</span><br />$ imp scott/tiger file = expdat.dmp full=y <span style="DISPLAY: none">wQeLinux联盟</span><br />$ imp scott/tiger file = /mnt1/t1.dmp show=n buffer=2048000 ignore=n commit=y grants=y full=y log=/oracle_backup/log/imp_scott.log<span style="DISPLAY: none">wQeLinux联盟</span><br />$ imp system/manager parfile=params.dat <span style="DISPLAY: none">wQeLinux联盟</span><br />params.dat 内容 <span style="DISPLAY: none">wQeLinux联盟</span><br />file=dba.dmp show=n ignore=n grants=y fromuser=scott tables=(dept,emp) <span style="DISPLAY: none">wQeLinux联盟</span><br /><span style="DISPLAY: none">wQeLinux联盟</span><br /><strong>4.导入工具imp可能出现的问题</strong><span style="DISPLAY: none">wQeLinux联盟</span><br /><span style="DISPLAY: none">wQeLinux联盟</span><br />(1) 数据库对象已经存在<span style="DISPLAY: none">wQeLinux联盟</span><br />一般情况, 导入数据前应该彻底删除目标数据下的表, 序列, 函数/过程,触发器等;  <span style="DISPLAY: none">wQeLinux联盟</span><br />数据库对象已经存在, 按缺省的imp参数, 则会导入失败<span style="DISPLAY: none">wQeLinux联盟</span><br />如果用了参数ignore=y, 会把exp文件内的数据内容导入<span style="DISPLAY: none">wQeLinux联盟</span><br />如果表有唯一关键字的约束条件, 不合条件将不被导入<span style="DISPLAY: none">wQeLinux联盟</span><br />如果表没有唯一关键字的约束条件, 将引起记录重复<span style="DISPLAY: none">wQeLinux联盟</span><br /><span style="DISPLAY: none">wQeLinux联盟</span><br />(2) 数据库对象有主外键约束<span style="DISPLAY: none">wQeLinux联盟</span><br />      不符合主外键约束时, 数据会导入失败 <span style="DISPLAY: none">wQeLinux联盟</span><br />      解决办法: 先导入主表, 再导入依存表<span style="DISPLAY: none">wQeLinux联盟</span><br />disable目标导入对象的主外键约束, 导入数据后, 再enable它们<span style="DISPLAY: none">wQeLinux联盟</span><br />(3)  权限不够<span style="DISPLAY: none">wQeLinux联盟</span><br />如果要把A用户的数据导入B用户下, A用户需要有imp_full_database权限<span style="DISPLAY: none">wQeLinux联盟</span><br /><span style="DISPLAY: none">wQeLinux联盟</span><br />(4)  导入大表( 大于80M ) 时, 存储分配失败<span style="DISPLAY: none">wQeLinux联盟</span><br />      默认的EXP时, compress = Y, 也就是把所有的数据压缩在一个数据块上.<span style="DISPLAY: none">wQeLinux联盟</span><br />      导入时, 如果不存在连续一个大数据块, 则会导入失败.<span style="DISPLAY: none">wQeLinux联盟</span><br />      导出80M以上的大表时, 记得compress= N, 则不会引起这种错误.<span style="DISPLAY: none">wQeLinux联盟</span><br /><span style="DISPLAY: none">wQeLinux联盟</span><br />(5) imp和exp使用的字符集不同<span style="DISPLAY: none">wQeLinux联盟</span><br />      如果字符集不同, 导入会失败, 可以改变unix环境变量或者NT注册表里NLS_LANG相关信息.<span style="DISPLAY: none">wQeLinux联盟</span><br />      导入完成后再改回来.<span style="DISPLAY: none">wQeLinux联盟</span><br /><span style="DISPLAY: none">wQeLinux联盟</span><br />(6) imp和exp版本不能往上兼容<span style="DISPLAY: none">wQeLinux联盟</span><br />imp可以成功导入低版本exp生成的文件, 不能导入高版本exp生成的文件<span style="DISPLAY: none">wQeLinux联盟</span><br />根据情况我们可以用<span style="DISPLAY: none">wQeLinux联盟</span><br />$ imp username/password@connect_string<span style="DISPLAY: none">wQeLinux联盟</span><br />说明: connect_string 是在/ORACLE_HOME/network/admin/tnsnames.ora<span style="DISPLAY: none">wQeLinux联盟</span><br />   定义的本地或者远端数据库的名称<span style="DISPLAY: none">wQeLinux联盟</span><br /><img src ="http://www.blogjava.net/fine/aggbug/193372.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fine/" target="_blank">Peter Pan</a> 2008-04-16 11:43 <a href="http://www.blogjava.net/fine/archive/2008/04/16/193372.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle创建表空间</title><link>http://www.blogjava.net/fine/archive/2008/04/16/193254.html</link><dc:creator>Peter Pan</dc:creator><author>Peter Pan</author><pubDate>Tue, 15 Apr 2008 17:05:00 GMT</pubDate><guid>http://www.blogjava.net/fine/archive/2008/04/16/193254.html</guid><wfw:comment>http://www.blogjava.net/fine/comments/193254.html</wfw:comment><comments>http://www.blogjava.net/fine/archive/2008/04/16/193254.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fine/comments/commentRss/193254.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fine/services/trackbacks/193254.html</trackback:ping><description><![CDATA[create tablespace  dbspace datafile 'D:\oracle\product\10.2.0\oradata\orcl\dbspace.dbf' size 400M autoextend on next 10m maxsize unlimited;--创建表空间<br />DROP TABLESPACE dbspace INCLUDING CONTENTS AND DATAFILES;--删除表空间<br /><div><span style="FONT-SIZE: 10.5pt; COLOR: black">1) DATAFILE: </span><span style="FONT-SIZE: 10.5pt; COLOR: black">表空间数据文件存放路径<br />2) SIZE: 起初设置为200M<br />3) UNIFORM: 指定区尺寸为128k,如不指定，区尺寸默认为64k <br />4) 空间名称histdb 与 数据文件名称 histdb.dbf 不要求相同,可随意命名.</span></div><div><span style="FONT-SIZE: 10.5pt; COLOR: black">5) AUTOEXTEND ON/OFF </span><span style="FONT-SIZE: 10.5pt; COLOR: black">表示启动/停止自动扩展表空间</span></div><div style="MARGIN-LEFT: 26.35pt; TEXT-INDENT: -26.35pt" align="left"><span>6) alter database datafile ' D:\oracle\product\10.2.0\oradata\orcl\histdb.dbf ' resize 500m; //手动修改数据文件大小为<br /><br />create user test1 identified by test1 default tablespace dbspace; <br />alter database default tablespace dbspace; <br />create user test identified by test; <br />select username, default_tablespace defspace from dba_users where username='TEST';</span></div><img src ="http://www.blogjava.net/fine/aggbug/193254.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fine/" target="_blank">Peter Pan</a> 2008-04-16 01:05 <a href="http://www.blogjava.net/fine/archive/2008/04/16/193254.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle10g创建用户</title><link>http://www.blogjava.net/fine/archive/2008/04/16/193253.html</link><dc:creator>Peter Pan</dc:creator><author>Peter Pan</author><pubDate>Tue, 15 Apr 2008 16:58:00 GMT</pubDate><guid>http://www.blogjava.net/fine/archive/2008/04/16/193253.html</guid><wfw:comment>http://www.blogjava.net/fine/comments/193253.html</wfw:comment><comments>http://www.blogjava.net/fine/archive/2008/04/16/193253.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/fine/comments/commentRss/193253.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fine/services/trackbacks/193253.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: oracle10g创建用户																																																																																																		Oracle10g																																的创建用户名																...&nbsp;&nbsp;<a href='http://www.blogjava.net/fine/archive/2008/04/16/193253.html'>阅读全文</a><img src ="http://www.blogjava.net/fine/aggbug/193253.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fine/" target="_blank">Peter Pan</a> 2008-04-16 00:58 <a href="http://www.blogjava.net/fine/archive/2008/04/16/193253.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ora sql 优化</title><link>http://www.blogjava.net/fine/archive/2007/05/18/118416.html</link><dc:creator>Peter Pan</dc:creator><author>Peter Pan</author><pubDate>Fri, 18 May 2007 09:17:00 GMT</pubDate><guid>http://www.blogjava.net/fine/archive/2007/05/18/118416.html</guid><wfw:comment>http://www.blogjava.net/fine/comments/118416.html</wfw:comment><comments>http://www.blogjava.net/fine/archive/2007/05/18/118416.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fine/comments/commentRss/118416.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fine/services/trackbacks/118416.html</trackback:ping><description><![CDATA[ora sql 强行用某个索引<br />select /*+index(t_customer idx_t_cust_area_name)*/    --强行利用t_customer的索引 idx_t_cust_area_name 进行查询<br />         count(*)<br />          into v_count<br />          from t_customer<br />         where parent_cust_id = in_parent_cust_id<br />           and type = 1<br />           and customer_area_code = in_customer_area_code<br />           and customer_name = in_customer_name;<br /><br />分析表<br />analyze table T_INDUSTRY compute statistics;<br /><img src ="http://www.blogjava.net/fine/aggbug/118416.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fine/" target="_blank">Peter Pan</a> 2007-05-18 17:17 <a href="http://www.blogjava.net/fine/archive/2007/05/18/118416.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>exp/imp导出导入工具</title><link>http://www.blogjava.net/fine/archive/2007/04/30/114753.html</link><dc:creator>Peter Pan</dc:creator><author>Peter Pan</author><pubDate>Mon, 30 Apr 2007 05:20:00 GMT</pubDate><guid>http://www.blogjava.net/fine/archive/2007/04/30/114753.html</guid><wfw:comment>http://www.blogjava.net/fine/comments/114753.html</wfw:comment><comments>http://www.blogjava.net/fine/archive/2007/04/30/114753.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fine/comments/commentRss/114753.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fine/services/trackbacks/114753.html</trackback:ping><description><![CDATA[1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin<br /><br />   exp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移<br />   <br />   它有三种模式：<br />       a.  用户模式：	导出用户所有对象以及对象中的数据；<br />       b.  表模式：	导出用户所有表或者指定的表；<br />       c.  整个数据库：	导出数据库中所有对象。<br />$exp test/test123@appdb<br />Enter array fetch buffer size: 4096 &gt; 回车<br />Export file: expdat.dmp &gt; m.dmp  生成导出的文件名 <br />(1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U &gt; 3<br />Export table data (yes/no): yes &gt; 回车<br />Compress extents (yes/no): yes &gt; 回车<br />Export done in ZHS16GBK character set and ZHS16GBK NCHAR character set<br />About to export specified tables via Conventional Path ...<br />Table(T) or Partition(T:P) to be exported: (RETURN to quit) &gt; cmamenu  							要导出的表名<br />. . exporting table                        CMAMENU       4336 rows exported<br />Table(T) or Partition(T:P) to be exported: (RETURN to quit) &gt;要导出的表名n<br />Table(T) or Partition(T:P) to be exported: (RETURN to quit) &gt; 回车<br />Export terminated successfully without warnings. <br /><br /><br />1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin<br /><br />	imp导入工具将EXP形成的二进制系统文件导入到数据库中.<br /><br />   它有三种模式：<br />       a.  用户模式：	导出用户所有对象以及对象中的数据；<br />       b.  表模式：	导出用户所有表或者指定的表；<br />       c.  整个数据库：	导出数据库中所有对象。<br />       <br />   只有拥有IMP_FULL_DATABASE和DBA权限的用户才能做整个数据库导入<br />   <br />   imp步骤：<br />   (1) create table  (2) insert data  (3) create index (4) create triggers,constraints<br /><br />2.导入工具imp交互式命令行方式的例子<br />$ imp<br />Import: Release 8.1.6.0.0 - Production on 星期五 12月 7 17:01:08 2001<br />(c) Copyright 1999 Oracle Corporation.  All rights reserved.<br />用户名:  test<br />口令:****<br />连接到: Oracle8i Enterprise Edition Release 8.1.6.0.0 - 64bit Production<br />With the Partitioning option<br />JServer Release 8.1.6.0.0 - Production<br />导入文件: expdat.dmp&gt; /tmp/m.dmp<br />输入插入缓冲区大小（最小为 8192 ) 30720&gt;<br />经由常规路径导出由EXPORT:V08.01.06创建的文件<br />警告: 此对象由 TEST 导出, 而不是当前用户<br />已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入<br />只列出导入文件的内容(yes/no)：no&gt;<br />由于对象已存在, 忽略创建错误(yes/no)：no&gt; yes<br />导入权限(yes/no)：yes&gt;<br />导入表数据(yes/no)：yes&gt;<br />导入整个导出文件(yes/no)：no&gt; yes<br />. 正在将TEST的对象导入到 SCOTT<br />. . 正在导入表                       "CMAMENU"       4336行被导入<br />成功终止导入，但出现警告。 <br /><br />imp userid=system/password fromuser=olddbuser touser=newdbuser<img src ="http://www.blogjava.net/fine/aggbug/114753.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fine/" target="_blank">Peter Pan</a> 2007-04-30 13:20 <a href="http://www.blogjava.net/fine/archive/2007/04/30/114753.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle备份与恢复案例</title><link>http://www.blogjava.net/fine/archive/2007/03/16/104237.html</link><dc:creator>Peter Pan</dc:creator><author>Peter Pan</author><pubDate>Fri, 16 Mar 2007 05:45:00 GMT</pubDate><guid>http://www.blogjava.net/fine/archive/2007/03/16/104237.html</guid><wfw:comment>http://www.blogjava.net/fine/comments/104237.html</wfw:comment><comments>http://www.blogjava.net/fine/archive/2007/03/16/104237.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fine/comments/commentRss/104237.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fine/services/trackbacks/104237.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Oracle														备份与恢复案例																																												By Piner																		 																		一. 理解什么是数据库恢复   								当我们使用一个数据库...&nbsp;&nbsp;<a href='http://www.blogjava.net/fine/archive/2007/03/16/104237.html'>阅读全文</a><img src ="http://www.blogjava.net/fine/aggbug/104237.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fine/" target="_blank">Peter Pan</a> 2007-03-16 13:45 <a href="http://www.blogjava.net/fine/archive/2007/03/16/104237.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>安装SQL SERVER2000时 错误</title><link>http://www.blogjava.net/fine/archive/2007/03/13/103546.html</link><dc:creator>Peter Pan</dc:creator><author>Peter Pan</author><pubDate>Tue, 13 Mar 2007 07:43:00 GMT</pubDate><guid>http://www.blogjava.net/fine/archive/2007/03/13/103546.html</guid><wfw:comment>http://www.blogjava.net/fine/comments/103546.html</wfw:comment><comments>http://www.blogjava.net/fine/archive/2007/03/13/103546.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fine/comments/commentRss/103546.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fine/services/trackbacks/103546.html</trackback:ping><description><![CDATA[安装Sqlserver2000 程序挂起 错误 解决<br /><img src="file:///C:/Documents%20and%20Settings/Administrator/桌面/sqlserve2000rerror.JPG" /><br />运行Regedit.exe<br />HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager<br />清空PendingFileRenameOperations中的内容 <img src ="http://www.blogjava.net/fine/aggbug/103546.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fine/" target="_blank">Peter Pan</a> 2007-03-13 15:43 <a href="http://www.blogjava.net/fine/archive/2007/03/13/103546.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle Base Sql</title><link>http://www.blogjava.net/fine/archive/2007/03/13/103543.html</link><dc:creator>Peter Pan</dc:creator><author>Peter Pan</author><pubDate>Tue, 13 Mar 2007 07:24:00 GMT</pubDate><guid>http://www.blogjava.net/fine/archive/2007/03/13/103543.html</guid><wfw:comment>http://www.blogjava.net/fine/comments/103543.html</wfw:comment><comments>http://www.blogjava.net/fine/archive/2007/03/13/103543.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fine/comments/commentRss/103543.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fine/services/trackbacks/103543.html</trackback:ping><description><![CDATA[--<br />select * from user_objects --where object_name = 'T_CUSTOMER';<br />--<br />select * from user_source<img src ="http://www.blogjava.net/fine/aggbug/103543.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fine/" target="_blank">Peter Pan</a> 2007-03-13 15:24 <a href="http://www.blogjava.net/fine/archive/2007/03/13/103543.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle INDEX BY Pl/sql数组</title><link>http://www.blogjava.net/fine/archive/2007/03/12/103358.html</link><dc:creator>Peter Pan</dc:creator><author>Peter Pan</author><pubDate>Mon, 12 Mar 2007 09:31:00 GMT</pubDate><guid>http://www.blogjava.net/fine/archive/2007/03/12/103358.html</guid><wfw:comment>http://www.blogjava.net/fine/comments/103358.html</wfw:comment><comments>http://www.blogjava.net/fine/archive/2007/03/12/103358.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fine/comments/commentRss/103358.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fine/services/trackbacks/103358.html</trackback:ping><description><![CDATA[
		<p>--INDEX BY Pl/sql数组<br />SET SERVEROUTPUT ON<br />DECLARE<br />       TYPE NumberTab IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;<br />       v_Numbers NumberTab;<br />BEGIN<br />     FOR v_Count in 1..10 LOOP<br />         v_Numbers(v_Count) := v_Count * 10;<br />     END LOOP;<br />     <br />     DBMS_OUTPUT.put_line('Table elements: ');<br />     FOR v_Count IN 1..10 LOOP<br />         DBMS_OUTPUT.put_line(' v_Numbers('|| v_Count||'): '||v_Numbers(v_Count));<br />     END LOOP;<br />     <br />  BEGIN<br />       DBMS_OUTPUT.put_line('v_Numbers(11): '|| v_Numbers(11));<br />  EXCEPTION<br />           WHEN NO_DATA_FOUND THEN<br />                DBMS_OUTPUT.put_line('No data found reading v_Numbers(11)!');<br />  END;<br />END;</p>
		<p>--INDEX BY Pl/sql数组002<br />SET SERVEROUTPUT ON <br />declare<br />       type T_customerTab is table of t_customer%rowtype index by binary_integer;<br />       t_customers T_customerTab;<br />begin<br />          select * into t_customers(1) from t_customer where rownum = 1;     <br />          DBMS_OUTPUT.put_line( 'customer_name: '||t_customers(1).customer_id || ' customer_name: '||t_customers(1).customer_name);<br />end;<br /></p>
<img src ="http://www.blogjava.net/fine/aggbug/103358.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fine/" target="_blank">Peter Pan</a> 2007-03-12 17:31 <a href="http://www.blogjava.net/fine/archive/2007/03/12/103358.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORACLE  DBMS_UTILITY.format_call_stack 001</title><link>http://www.blogjava.net/fine/archive/2007/03/09/102880.html</link><dc:creator>Peter Pan</dc:creator><author>Peter Pan</author><pubDate>Fri, 09 Mar 2007 09:20:00 GMT</pubDate><guid>http://www.blogjava.net/fine/archive/2007/03/09/102880.html</guid><wfw:comment>http://www.blogjava.net/fine/comments/102880.html</wfw:comment><comments>http://www.blogjava.net/fine/archive/2007/03/09/102880.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fine/comments/commentRss/102880.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fine/services/trackbacks/102880.html</trackback:ping><description><![CDATA[
		<p>SET SERVEROUTPUT ON<br />BEGIN<br />     DBMS_OUTPUT.put_line('A BEGIN');<br />       BEGIN<br />            DBMS_OUTPUT.put_line('B BEGIN');<br />              DECLARE<br />                     v_CallStack      VARCHAR2(2000);<br />              BEGIN<br />                   DBMS_OUTPUT.put_line('C BEGIN');<br />                   v_CallStack := DBMS_UTILITY.format_call_stack;<br />                   DBMS_OUTPUT.put_line(v_CallStack);<br />                   DBMS_OUTPUT.put_line('C END');<br />              END;<br />            DBMS_OUTPUT.put_line('B END');<br />       END;<br />     DBMS_OUTPUT.put_line('A END');<br />END;</p>
		<p>--DBMS_UTILITY.format_call_stack<br />SET SERVEROUTPUT ON<br />DECLARE<br />       v_CallStack      VARCHAR2(2000);<br />BEGIN<br />       DBMS_OUTPUT.put_line('C BEGIN');<br />       v_CallStack := DBMS_UTILITY.format_call_stack;<br />       DBMS_OUTPUT.put_line(v_CallStack);<br />       DBMS_OUTPUT.put_line('C END');<br />END;<br />--结果<br />/*<br />C BEGIN<br />----- PL/SQL Call Stack -----<br />  object      line  object<br />  handle    number  name<br />135576A4         5  anonymous block</p>
		<p>C END<br />*/</p>
		<p>
				<br />/**<br />   CREATE OR REPLACE PROCEDURE C AS<br />        v_CallStack      VARCHAR2(2000);<br />   BEGIN<br />        v_CallStack := DBMS_UTILITY.format_call_stack;<br />   END C;<br />   <br />   CREATE OR REPLACE PROCEDURE B AS<br />   BEGIN<br />        C;<br />   END B;<br />   <br />   CREATE OR REPLACE PROCEDURE A AS<br />   BEGIN<br />        B;<br />   END A;<br />  <br />  <br />--类似结果<br />C BEGIN<br />----- PL/SQL Call Stack -----<br />  object      line  object<br />  handle    number  name<br />135576A4         4  PROCEDURE C<br />135576A4         5  PROCEDURE B<br />135576A4         5  PROCEDURE A<br />135576A4         5  anonymous block</p>
		<p>C END<br />*/<br /></p>
<img src ="http://www.blogjava.net/fine/aggbug/102880.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fine/" target="_blank">Peter Pan</a> 2007-03-09 17:20 <a href="http://www.blogjava.net/fine/archive/2007/03/09/102880.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORACLE EXCEPTION 001</title><link>http://www.blogjava.net/fine/archive/2007/03/09/102868.html</link><dc:creator>Peter Pan</dc:creator><author>Peter Pan</author><pubDate>Fri, 09 Mar 2007 08:40:00 GMT</pubDate><guid>http://www.blogjava.net/fine/archive/2007/03/09/102868.html</guid><wfw:comment>http://www.blogjava.net/fine/comments/102868.html</wfw:comment><comments>http://www.blogjava.net/fine/archive/2007/03/09/102868.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fine/comments/commentRss/102868.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fine/services/trackbacks/102868.html</trackback:ping><description><![CDATA[
		<p>--定义EXCEPTION<br />SET SERVEROUTPUT ON<br />DECLARE<br />       A exception;<br />BEGIN <br />      RAISE A;<br />EXCEPTION<br />         WHEN A THEN<br />                  DBMS_OUTPUT.put_line('EXCEPTION A!'); <br />         WHEN OTHERS THEN<br />              ROLLBACK;  <br />                    DBMS_OUTPUT.put_line('OTHERS EXCEPTION!');     <br />END;<br />--结果<br />--EXCEPTION A!</p>
		<p>--EXCEPTION 001<br />SET SERVEROUTPUT ON<br />DECLARE<br />       A exception;<br />       B exception;<br />BEGIN   <br />     RAISE B;<br />       BEGIN <br />              RAISE A;<br />       EXCEPTION<br />                WHEN A THEN<br />                     DBMS_OUTPUT.put_line('IN EXCEPTION A!');<br />                WHEN B THEN<br />                     DBMS_OUTPUT.put_line('IN EXCEPTION B!');                <br />       END;  <br />EXCEPTION<br />         WHEN A THEN<br />                  DBMS_OUTPUT.put_line('OUT EXCEPTION A!');<br />         WHEN B THEN<br />                  DBMS_OUTPUT.put_line('OUT EXCEPTION B!');   <br />         WHEN OTHERS THEN<br />         ROLLBACK;  <br />                    DBMS_OUTPUT.put_line('OTHERS EXCEPTION!');   <br />END;<br />--结果<br />--OUT EXCEPTION B!</p>
		<p>--EXCEPTION 002<br />SET SERVEROUTPUT ON<br />DECLARE<br />       A exception;<br />       B exception;<br />BEGIN   <br />       BEGIN <br />              RAISE A;<br />       EXCEPTION<br />                WHEN A THEN<br />                     DBMS_OUTPUT.put_line('IN EXCEPTION A!');<br />                WHEN B THEN<br />                     DBMS_OUTPUT.put_line('IN EXCEPTION B!');                <br />       END; <br />    RAISE B; <br />EXCEPTION<br />         WHEN A THEN<br />                  DBMS_OUTPUT.put_line('OUT EXCEPTION A!');<br />         WHEN B THEN<br />                  DBMS_OUTPUT.put_line('OUT EXCEPTION B!'); <br />         WHEN OTHERS THEN<br />         ROLLBACK;  <br />                    DBMS_OUTPUT.put_line('OTHERS EXCEPTION!');      <br />END;<br />--结果<br />--IN EXCEPTION A!<br />--OUT EXCEPTION B!</p>
		<p>--EXCEPTION 003<br />SET SERVEROUTPUT ON<br />DECLARE<br />       A exception;<br />       B exception;<br />BEGIN   <br />       BEGIN <br />              RAISE A;<br />       EXCEPTION<br />                WHEN B THEN<br />                     DBMS_OUTPUT.put_line('IN EXCEPTION B!');                <br />       END; <br />    RAISE B; <br />EXCEPTION<br />         WHEN A THEN<br />                  DBMS_OUTPUT.put_line('OUT EXCEPTION A!');<br />         WHEN B THEN<br />                  DBMS_OUTPUT.put_line('OUT EXCEPTION B!');  <br />         WHEN OTHERS THEN<br />         ROLLBACK;  <br />                    DBMS_OUTPUT.put_line('OTHERS EXCEPTION!');     <br />END;<br />--结果<br />--OUT EXCEPTION A!</p>
		<p>--EXCEPTION 004<br />SET SERVEROUTPUT ON<br />DECLARE<br />       A exception;<br />       B exception;<br />       C exception;<br />BEGIN  <br />   RAISE C; <br />       BEGIN <br />              RAISE A;<br />       EXCEPTION<br />                WHEN B THEN<br />                     DBMS_OUTPUT.put_line('IN EXCEPTION B!');                <br />       END; <br />    RAISE B; <br />EXCEPTION<br />         WHEN A THEN<br />                  DBMS_OUTPUT.put_line('OUT EXCEPTION A!');<br />         WHEN B THEN<br />                  DBMS_OUTPUT.put_line('OUT EXCEPTION B!');  <br />         WHEN OTHERS THEN<br />         ROLLBACK;  <br />                    DBMS_OUTPUT.put_line('OTHERS EXCEPTION!');     <br />END;<br />--结果<br />--OTHERS EXCEPTION!</p>
		<p>--EXCEPTION 005<br />SET SERVEROUTPUT ON<br />DECLARE<br />       A exception;<br />       B exception;<br />       C exception;<br />BEGIN  <br />       BEGIN <br />              RAISE A;<br />       EXCEPTION<br />                WHEN A THEN<br />                  RAISE C;<br />                WHEN B THEN<br />                     DBMS_OUTPUT.put_line('IN EXCEPTION B!');                <br />       END; <br />    RAISE B; <br />EXCEPTION<br />         WHEN A THEN<br />                  DBMS_OUTPUT.put_line('OUT EXCEPTION B!'); <br />         WHEN B THEN<br />                  DBMS_OUTPUT.put_line('OUT EXCEPTION B!');  <br />         WHEN OTHERS THEN<br />         ROLLBACK;  </p>
		<p>                    DBMS_OUTPUT.put_line('OTHERS EXCEPTION!');     <br />END;<br />--结果：<br />--OTHERS EXCEPTION!</p>
<img src ="http://www.blogjava.net/fine/aggbug/102868.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fine/" target="_blank">Peter Pan</a> 2007-03-09 16:40 <a href="http://www.blogjava.net/fine/archive/2007/03/09/102868.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle procedures 001</title><link>http://www.blogjava.net/fine/archive/2007/03/09/102842.html</link><dc:creator>Peter Pan</dc:creator><author>Peter Pan</author><pubDate>Fri, 09 Mar 2007 07:30:00 GMT</pubDate><guid>http://www.blogjava.net/fine/archive/2007/03/09/102842.html</guid><wfw:comment>http://www.blogjava.net/fine/comments/102842.html</wfw:comment><comments>http://www.blogjava.net/fine/archive/2007/03/09/102842.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fine/comments/commentRss/102842.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fine/services/trackbacks/102842.html</trackback:ping><description><![CDATA[
		<p>--简单循环<br />SET SERVEROUTPUT ON<br />DECLARE<br />       v_t_customer t_customer%ROWTYPE;<br />       v_customer_id t_customer.customer_id%TYPE;<br />       v_customer_name t_customer.customer_name%TYPE;<br />       CURSOR c_t_customer IS<br />        --select customer_id,customer_name from t_customer where rownum &lt;= 10;<br />        select * from t_customer where rownum &lt;= 10;<br />BEGIN<br />     OPEN c_t_customer;<br />       LOOP<br />         --fetch c_t_customer into v_customer_id,v_customer_name;<br />         FETCH c_t_customer INTO v_t_customer;<br />         <br />         dbms_output.put_line('customer_id :'||v_t_customer.customer_id||' customer_name :'||v_t_customer.customer_name);<br />         EXIT WHEN c_t_customer%NOTFOUND;<br />       END LOOP;<br />     CLOSE c_t_customer;<br />EXCEPTION<br />         WHEN OTHERS THEN<br />         ROLLBACK;  <br />         DBMS_OUTPUT.put_line('exception');  <br />END;<br />      <br />--WHILE循环 <br />SET SERVEROUTPUT ON<br />DECLARE<br />       v_t_customer t_customer%ROWTYPE;<br />       v_customer_id t_customer.customer_id%TYPE;<br />       v_customer_name t_customer.customer_name%TYPE;<br />       CURSOR c_t_customer IS<br />        --select customer_id,customer_name from t_customer where rownum &lt;= 10;<br />        select * from t_customer where rownum &lt;= 10;<br />BEGIN<br />     OPEN c_t_customer;<br />       --fetch c_t_customer into v_customer_id,v_customer_name;<br />       FETCH c_t_customer INTO v_t_customer;<br />       WHILE c_t_customer%FOUND LOOP<br />         --fetch c_t_customer into v_customer_id,v_customer_name;<br />         FETCH c_t_customer INTO v_t_customer;<br />         dbms_output.put_line('customer_id :'||v_t_customer.customer_id||' customer_name :'||v_t_customer.customer_name);<br />       END LOOP;<br />     CLOSE c_t_customer;<br />EXCEPTION<br />         WHEN OTHERS THEN<br />         ROLLBACK;  <br />         DBMS_OUTPUT.put_line('exception');  <br />END;</p>
		<p>--游标FOR循环 <br />SET SERVEROUTPUT ON<br />DECLARE<br />       v_t_customer t_customer%ROWTYPE;<br />       v_customer_id t_customer.customer_id%TYPE;<br />       v_customer_name t_customer.customer_name%TYPE;<br />       CURSOR c_t_customer IS<br />        --select customer_id,customer_name from t_customer where rownum &lt;= 10;<br />        select * from t_customer where rownum &lt;= 10;<br />BEGIN<br />       FOR v_t_customer IN c_t_customer LOOP<br />         dbms_output.put_line('customer_id :'||v_t_customer.customer_id||' customer_name :'||v_t_customer.customer_name);<br />       END LOOP;<br />EXCEPTION<br />         WHEN OTHERS THEN<br />         ROLLBACK;  <br />         DBMS_OUTPUT.put_line('exception');  <br />END;</p>
<img src ="http://www.blogjava.net/fine/aggbug/102842.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fine/" target="_blank">Peter Pan</a> 2007-03-09 15:30 <a href="http://www.blogjava.net/fine/archive/2007/03/09/102842.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle实现Tree</title><link>http://www.blogjava.net/fine/archive/2007/02/07/98549.html</link><dc:creator>Peter Pan</dc:creator><author>Peter Pan</author><pubDate>Wed, 07 Feb 2007 03:43:00 GMT</pubDate><guid>http://www.blogjava.net/fine/archive/2007/02/07/98549.html</guid><wfw:comment>http://www.blogjava.net/fine/comments/98549.html</wfw:comment><comments>http://www.blogjava.net/fine/archive/2007/02/07/98549.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fine/comments/commentRss/98549.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fine/services/trackbacks/98549.html</trackback:ping><description><![CDATA[
		<p>select a.*,level from t_customer a<br />start with customer_id = 'AABB10000010'<br />connect by prior customer_id = parent_cust_id </p>
		<p>select a.*, level <br />from t_industry a<br />start with industry_id  = 'B03'<br />connect by prior industry_id = parent_id<br /><br />--connect String<br />select Substr('bbbcbdb',1,2) ||replace(Substr('bbbcbdb',3,4),'b','a') ||Substr('bbbcbdb',7,1) from dual<br /><br /><br /> select Replace(customer_name, '-&gt;','') as all_customer_name,rownum from ( <br /> select sys_connect_by_path(customer_name, '-&gt;') customer_name from (<br />  select a.customer_name, (level - 1) ll,level l<br />  from t_customer a <br />  start with customer_id = 'SH02110000893' connect by prior parent_cust_id=customer_id order by l desc<br />  )<br />  connect by prior ll= l order by level desc <br />  ) c where rownum &lt;2  <br /><br />根据字节点查出全名<br />with temp as(<br />select a.*, (level - 1) ll, level l<br />  from t_content_type a<br /> start with a.type_id = '20000000138418'<br />connect by prior a.parent_type_id = a.type_id<br /> order by l desc<br />)<br />select sys_connect_by_path(temp.type_name, '/') path<br />  from temp<br /> start with temp.parent_type_id = '0'<br />connect by prior temp.type_id = temp.parent_type_id</p>
<img src ="http://www.blogjava.net/fine/aggbug/98549.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fine/" target="_blank">Peter Pan</a> 2007-02-07 11:43 <a href="http://www.blogjava.net/fine/archive/2007/02/07/98549.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ora的中出现的一些小问题</title><link>http://www.blogjava.net/fine/archive/2007/01/19/94851.html</link><dc:creator>Peter Pan</dc:creator><author>Peter Pan</author><pubDate>Fri, 19 Jan 2007 01:21:00 GMT</pubDate><guid>http://www.blogjava.net/fine/archive/2007/01/19/94851.html</guid><wfw:comment>http://www.blogjava.net/fine/comments/94851.html</wfw:comment><comments>http://www.blogjava.net/fine/archive/2007/01/19/94851.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fine/comments/commentRss/94851.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fine/services/trackbacks/94851.html</trackback:ping><description><![CDATA[
		<p>今天遭遇ORA-12560: TNS: 协议适配器错误的问题，经过一番努力问题已经解决，与大家共享。<br />造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个：<br />1.监听服务没有起起来。windows平台个一如下操作：开始---程序---管理工具---服务，打开服务面板</p>
		<p>，启动oraclehome92TNSlistener服务。<br />2.database instance没有起起来。windows平台如下操作：开始---程序---管理工具---服务，打开服务<br />面板，启动oracleserviceXXXX,XXXX就是你的database SID.<br />3.注册表问题。regedit，然后进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0将该环境变量</p>
		<p>ORACLE_SID设置为XXXX,XXXX就是你的database SID.或者右几我的电脑，属性--高级--环境变量---系统</p>
		<p>变量--新建，变量名=oracle_sid,变量值=XXXX,XXXX就是你的database SID.或者进入sqlplus前，在</p>
		<p>command line下输set oracle_sid=XXXX,XXXX就是你的database SID.<br />经过以上步骤，就可以解决问题</p>
		<p>1、ORA－12541：TNS：没有监听器<br />　　原因：没有启动监听器或者监听器损坏。如果是前者，使用命令net start </p>
		<p>OracleOraHome81TNSListener（名字可能有出入）即可；如果是后者，则使用“Net8 Configuration </p>
		<p>Assistant”工具向导之“监听程序配置”增加一个监听器即可（基本不用写任何信息，一路OK。在添加</p>
		<p>之前可能需要把所有的监听器先删除！）<br />2、ORA－12500：TNS：监听程序无法启动专用服务器进程或ORA－12560：TNS：协议适配器错误<br />　　原因：ORACLE的数据库服务没有启动。使用命令net start ORACLESERVICEORADB（ORADB为数据库名</p>
		<p>字）即可。如果仍没有解决，请继续向下看。</p>
		<p>3、如果数据库服务启动失败，则很有可能是其注册表项值损坏，最好的做法是以下两步：<br />　　1）ORADIM -DELETE -SID oradb 删除数据库服务项<br />　　2）ORADIM -NEW -SID oradb 新增数据库服务项<br />　　注：这个过程中如果出错，就重启计算机！<br />4、ORA－12154：TNS：能解析服务名<br />　　原因：ORACLE的网络服务名没有正确配置。请使用“Net8 Configuration Assistant”工具向导之</p>
		<p>“本地网络服务名配置”配置TNS即可。如果仍没有解决，请继续向下看。<br />5、ORA－1034 ：TNS：ORACLE不可用<br />　　原因：ORACLE的数据库服务正确启动，但是数据库没有打开！<br />　　使用命令：<br />　　1）svrmgrl  启动服务管理器<br />　　2）connect internal 以internal身份登陆<br />　　3）startup  打开数据库<br />6、ORA－12560：TNS：协议适配器错误（顽固性的）<br />　　原因：未知。<br />　　解决：必杀技－－打开“Windows任务管理器”，杀死ORACLE.exe及ORADIM.exe进程，书写自己的</p>
		<p>ora_startup.bat，执行之！<br />PS：<br />1、我的ora_startup.bat：<br />net start OracleOraHome81TNSListener<br />net start ORACLESERVICEORADB<br />svrmgrl 一般情况下不用，不过有时少不了它的，具体步骤见第5步。<br />2、我的ora_shutdown.bat：<br />net stop OracleOraHome81TNSListener<br />net stop ORACLESERVICEORADB<br />。<br />　　ORACLE_HOME=/u01/app/oracle/product/8.1.6 <br />　　export ORACLE_HOME/包括Oracle软件的目录/ <br />　　LD_LIBRARY_PATH=/u01/app/oracle/product/8.1.6/lib; <br />　　export LD_LIBRARY_PATH <br />　　ORACLE_BASE=/u01/app/oracle <br />　　export ORACLE_BASE/包括Oracle软件的目录和管理软件的目录/ <br />　　ORACLE_SID=ORCL <br />　　export ORACLE_SID/缺省数据库的标识/ <br />　　ORACLE_TERM=vt100 <br />　　 export ORACLE_TERM <br />　　ORA_NLS33=/u01/app/oracle/product/8.1.6/ <br />　　ocommon/nls/admin/data <br />　　export ORA_NLS33 /语言支持/ <br />　　PATH=$PATH: /u01/app/oracle/product/8.1.6/bin <br />　　export PATH </p>
<img src ="http://www.blogjava.net/fine/aggbug/94851.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fine/" target="_blank">Peter Pan</a> 2007-01-19 09:21 <a href="http://www.blogjava.net/fine/archive/2007/01/19/94851.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>