﻿<?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-The NoteBook of EricKong-随笔分类-Oracle</title><link>http://www.blogjava.net/jjshcc/category/54473.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 09 Jun 2015 10:42:04 GMT</lastBuildDate><pubDate>Tue, 09 Jun 2015 10:42:04 GMT</pubDate><ttl>60</ttl><item><title> Java Jdbc 连接 Oracle 执行简单查询示例</title><link>http://www.blogjava.net/jjshcc/archive/2015/06/09/425579.html</link><dc:creator>Eric_jiang</dc:creator><author>Eric_jiang</author><pubDate>Tue, 09 Jun 2015 03:48:00 GMT</pubDate><guid>http://www.blogjava.net/jjshcc/archive/2015/06/09/425579.html</guid><wfw:comment>http://www.blogjava.net/jjshcc/comments/425579.html</wfw:comment><comments>http://www.blogjava.net/jjshcc/archive/2015/06/09/425579.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jjshcc/comments/commentRss/425579.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jjshcc/services/trackbacks/425579.html</trackback:ping><description><![CDATA[<div bg_java"="" style="width: 700.90625px; color: #333333; line-height: 26px; widows: auto;"><ol start="1"><li style="line-height: 18px;">package&nbsp;com.test.dbtest;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">import&nbsp;java.sql.CallableStatement;&nbsp;&nbsp;</li><li style="line-height: 18px;">import&nbsp;java.sql.Connection;&nbsp;&nbsp;</li><li style="line-height: 18px;">import&nbsp;java.sql.DriverManager;&nbsp;&nbsp;</li><li style="line-height: 18px;">import&nbsp;java.sql.ResultSet;&nbsp;&nbsp;</li><li style="line-height: 18px;">import&nbsp;java.sql.SQLException;&nbsp;&nbsp;</li><li style="line-height: 18px;">import&nbsp;java.sql.Statement;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">/**Jdbc&nbsp;连接&nbsp;Oracle&nbsp;数据库&nbsp;简单示例&nbsp;</li><li style="line-height: 18px;">&nbsp;*@author&nbsp;wanggq&nbsp;</li><li style="line-height: 18px;">&nbsp;*@version&nbsp;创建时间：2014年3月31日&nbsp;上午11:00:06&nbsp;</li><li style="line-height: 18px;">&nbsp;*类说明&nbsp;</li><li style="line-height: 18px;">&nbsp;*/&nbsp;&nbsp;</li><li style="line-height: 18px;">public&nbsp;class&nbsp;TestO_procedure01&nbsp;{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;driver&nbsp;=&nbsp;"oracle.jdbc.driver.OracleDriver";&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;url&nbsp;=&nbsp;"jdbc:Oracle:thin:@localhost:1521:orcl";&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Statement&nbsp;stmt&nbsp;=&nbsp;null;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResultSet&nbsp;res&nbsp;=&nbsp;null;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection&nbsp;conn&nbsp;=&nbsp;null;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CallableStatement&nbsp;proc&nbsp;=&nbsp;null;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;sql&nbsp;=&nbsp;"&nbsp;select&nbsp;T.REC_NO,&nbsp;T.AIRLINE,T.DEPARTURE,T.ARRIVAL&nbsp;from&nbsp;CDP_MAIN_ORDER&nbsp;t&nbsp;where&nbsp;t.departure=upper('pek')";&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Class.forName(driver);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn&nbsp;=&nbsp;DriverManager.getConnection(url,&nbsp;"abc123",&nbsp;"abc123");&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stmt&nbsp;=&nbsp;conn.createStatement();&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;res&nbsp;=&nbsp;stmt.executeQuery(sql);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(res.next())&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;rec&nbsp;=&nbsp;res.getString("REC_NO");&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;airline&nbsp;=&nbsp;res.getString("AIRLINE");&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;dept&nbsp;=&nbsp;res.getString("DEPARTURE");&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;arr&nbsp;=&nbsp;res.getString("ARRIVAL");&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(rec+"&nbsp;"+airline+"&nbsp;"+dept+"&nbsp;"+arr);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(ClassNotFoundException&nbsp;e)&nbsp;{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;TODO&nbsp;Auto-generated&nbsp;catch&nbsp;block&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(SQLException&nbsp;e)&nbsp;{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;TODO&nbsp;Auto-generated&nbsp;catch&nbsp;block&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">}&nbsp;&nbsp;</li></ol></div><p style="color: #333333; font-family: Arial; line-height: 26px; widows: auto; background-color: #ffffff;">也可以使用防止SQL注入PreparedStatement方法</p><div bg_java"="" style="width: 700.90625px; color: #333333; line-height: 26px; widows: auto;"><div><div><strong>[java]</strong>&nbsp;<a href="http://blog.csdn.net/morning99/article/details/22659925#" title="view plain" style="padding: 1px; display: inline-block; width: 16px; height: 16px; text-indent: -2000px; background-image: url(http://static.blog.csdn.net/scripts/SyntaxHighlighter/styles/images/default/ico_plain.gif); background-position: 0% 0%; background-repeat: no-repeat;">view plain</a><a href="http://blog.csdn.net/morning99/article/details/22659925#" title="copy" style="padding: 1px; display: inline-block; width: 16px; height: 16px; text-indent: -2000px; background-image: url(http://static.blog.csdn.net/scripts/SyntaxHighlighter/styles/images/default/ico_copy.gif); background-position: 0% 0%; background-repeat: no-repeat;">copy</a><a href="https://code.csdn.net/snippets/266366" target="_blank" title="在CODE上查看代码片" style="padding: 1px; display: inline-block; width: 16px; height: 16px; background-position: 0% 0%; background-repeat: no-repeat;"><img src="https://code.csdn.net/assets/CODE_ico.png" width="12" height="12" alt="在CODE上查看代码片" style="border: none; max-width: 100%; position: relative; top: 1px; left: 2px;" /></a><a href="https://code.csdn.net/snippets/266366/fork" target="_blank" title="派生到我的代码片" style="padding: 1px; display: inline-block; width: 16px; height: 16px; background-position: 0% 0%; background-repeat: no-repeat;"><img src="https://code.csdn.net/assets/ico_fork.svg" width="12" height="12" alt="派生到我的代码片" style="border: none; max-width: 100%; position: relative; top: 2px; left: 2px;" /></a><div style="position: absolute; left: 557px; top: 1565px; width: 18px; height: 18px; z-index: 99;"></div></div></div><ol start="1"><li style="line-height: 18px;">PreparedStatement&nbsp;stmt&nbsp;=&nbsp;null;&nbsp;&nbsp;</li><li style="line-height: 18px;">ResultSet&nbsp;res&nbsp;=&nbsp;null;&nbsp;&nbsp;</li><li style="line-height: 18px;">Connection&nbsp;conn&nbsp;=&nbsp;null;&nbsp;&nbsp;</li><li style="line-height: 18px;">CallableStatement&nbsp;proc&nbsp;=&nbsp;null;&nbsp;&nbsp;</li><li style="line-height: 18px;">String&nbsp;sql&nbsp;=&nbsp;"&nbsp;select&nbsp;T.REC_NO,&nbsp;T.AIRLINE,T.DEPARTURE,T.ARRIVAL&nbsp;from&nbsp;CDP_MAIN_ORDER&nbsp;t&nbsp;where&nbsp;t.departure=upper(?)";&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">try&nbsp;{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;Class.forName(driver);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;conn&nbsp;=&nbsp;DriverManager.getConnection(url,&nbsp;"abc123",&nbsp;"abc123");&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;stmt&nbsp;=&nbsp;conn.prepareStatement(sql);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;stmt.setString(<span style="color: #c00000;">1</span>,&nbsp;"pek");&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;res&nbsp;=&nbsp;stmt.executeQuery(); &nbsp;</li></ol></div><img src ="http://www.blogjava.net/jjshcc/aggbug/425579.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jjshcc/" target="_blank">Eric_jiang</a> 2015-06-09 11:48 <a href="http://www.blogjava.net/jjshcc/archive/2015/06/09/425579.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle sql语句  </title><link>http://www.blogjava.net/jjshcc/archive/2014/07/31/416401.html</link><dc:creator>Eric_jiang</dc:creator><author>Eric_jiang</author><pubDate>Thu, 31 Jul 2014 04:57:00 GMT</pubDate><guid>http://www.blogjava.net/jjshcc/archive/2014/07/31/416401.html</guid><wfw:comment>http://www.blogjava.net/jjshcc/comments/416401.html</wfw:comment><comments>http://www.blogjava.net/jjshcc/archive/2014/07/31/416401.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jjshcc/comments/commentRss/416401.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jjshcc/services/trackbacks/416401.html</trackback:ping><description><![CDATA[<div><div id="cnblogs_post_body">一、ORACLE的启动和关闭<br />1、在单机环境下<br />要想启动或关闭ORACLE系统必须首先切换到ORACLE用户，如下<br />su&nbsp;-&nbsp;oracle<br /><br />a、启动ORACLE系统<br />oracle&gt;svrmgrl<br />SVRMGR&gt;connect&nbsp;internal<br />SVRMGR&gt;startup<br />SVRMGR&gt;quit<br /><br />b、关闭ORACLE系统<br />oracle&gt;svrmgrl<br />SVRMGR&gt;connect&nbsp;internal<br />SVRMGR&gt;shutdown<br />SVRMGR&gt;quit<br /><br />启动oracle9i数据库命令：<br />＄&nbsp;sqlplus&nbsp;/nolog<br /><br />SQL*Plus:&nbsp;Release&nbsp;9.2.0.1.0&nbsp;-&nbsp;Production&nbsp;on&nbsp;Fri&nbsp;Oct&nbsp;31&nbsp;13:53:53&nbsp;2003<br /><br />Copyright&nbsp;(c)&nbsp;1982,&nbsp;2002,&nbsp;Oracle&nbsp;Corporation.&nbsp;&nbsp;All&nbsp;rights&nbsp;reserved.<br /><br />SQL&gt;&nbsp;connect&nbsp;/&nbsp;as&nbsp;sysdba&nbsp;&nbsp;<br />Connected&nbsp;to&nbsp;an&nbsp;idle&nbsp;instance.<br />SQL&gt;&nbsp;startup^C<br /><br />SQL&gt;&nbsp;startup<br />ORACLE&nbsp;instance&nbsp;started.<br /><br /><br /><br />2、在双机环境下<br />要想启动或关闭ORACLE系统必须首先切换到root用户，如下<br />su&nbsp;－&nbsp;root<br /><br />a、启动ORACLE系统<br />hareg&nbsp;－y&nbsp;oracle<br /><br />b、关闭ORACLE系统<br />hareg&nbsp;－n&nbsp;oracle<br /><br />Oracle数据库有哪几种启动方式<br /><br /><br /><br />说明：<br /><br />有以下几种启动方式：<br />1、startup&nbsp;nomount<br />非安装启动，这种方式启动下可执行：重建控制文件、重建数据库<br /><br />读取init.ora文件，启动instance，即启动SGA和后台进程，这种启动只需要init.ora文件。<br /><br /><br />2、startup&nbsp;mount&nbsp;dbname<br />安装启动，这种方式启动下可执行：<br />数据库日志归档、<br />数据库介质恢复、<br />使数据文件联机或脱机，<br />重新定位数据文件、重做日志文件。<br /><br />执行&#8220;nomount&#8221;，然后打开控制文件，确认数据文件和联机日志文件的位置，<br />但此时不对数据文件和日志文件进行校验检查。<br /><br /><br />3、startup&nbsp;open&nbsp;dbname<br />先执行&#8220;nomount&#8221;，然后执行&#8220;mount&#8221;，再打开包括Redo&nbsp;log文件在内的所有数据库文件，<br />这种方式下可访问数据库中的数据。<br /><br /><br />4、startup，等于以下三个命令<br />startup&nbsp;nomount<br />alter&nbsp;database&nbsp;mount<br />alter&nbsp;database&nbsp;open<br /><br /><br />5、startup&nbsp;restrict<br />约束方式启动<br />这种方式能够启动数据库，但只允许具有一定特权的用户访问<br />非特权用户访问时，会出现以下提示：<br />ERROR：<br />ORA-01035:&nbsp;ORACLE&nbsp;只允许具有&nbsp;RESTRICTED&nbsp;SESSION&nbsp;权限的用户使用<br /><br /><br />6、startup&nbsp;force<br />强制启动方式<br />当不能关闭数据库时，可以用startup&nbsp;force来完成数据库的关闭<br />先关闭数据库，再执行正常启动数据库命令<br /><br /><br />7、startup&nbsp;pfile=参数文件名<br />带初始化参数文件的启动方式<br />先读取参数文件，再按参数文件中的设置启动数据库<br />例：startup&nbsp;pfile=E:Oracleadminoradbpfileinit.ora<br /><br /><br />8、startup&nbsp;EXCLUSIVE<br />二、用户如何有效地利用数据字典<br />&nbsp;&nbsp;　ORACLE的数据字典是数据库的重要组成部分之一，它随着数据库的产生而产生,&nbsp;随着数据库的变化而变化,<br />体现为sys用户下的一些表和视图。数据字典名称是大写的英文字符。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;数据字典里存有用户信息、用户的权限信息、所有数据对象信息、表的约束条件、统计分析数据库的视图等。<br />我们不能手工修改数据字典里的信息。<br /><br />　　很多时候，一般的ORACLE用户不知道如何有效地利用它。<br /><br />　　dictionary　　　全部数据字典表的名称和解释，它有一个同义词dict<br />&nbsp;&nbsp;&nbsp;&nbsp;dict_column　　&nbsp;全部数据字典表里字段名称和解释<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;如果我们想查询跟索引有关的数据字典时，可以用下面这条SQL语句:<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt;select&nbsp;*&nbsp;from&nbsp;dictionary&nbsp;where&nbsp;instr(comments,'index')&gt;0;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;如果我们想知道user_indexes表各字段名称的详细含义，可以用下面这条SQL语句:<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt;select&nbsp;column_name,comments&nbsp;from&nbsp;dict_columns&nbsp;where&nbsp;table_name='USER_INDEXES';<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;依此类推，就可以轻松知道数据字典的详细名称和解释，不用查看ORACLE的其它文档资料了。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;下面按类别列出一些ORACLE用户常用数据字典的查询使用方法。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;1、用户<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查看当前用户的缺省表空间<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt;select&nbsp;username,default_tablespace&nbsp;from&nbsp;user_users;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查看当前用户的角色<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt;select&nbsp;*&nbsp;from&nbsp;user_role_privs;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查看当前用户的系统权限和表级权限<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt;select&nbsp;*&nbsp;from&nbsp;user_sys_privs;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt;select&nbsp;*&nbsp;from&nbsp;user_tab_privs;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;2、表<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查看用户下所有的表<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt;select&nbsp;*&nbsp;from&nbsp;user_tables;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查看名称包含log字符的表<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt;select&nbsp;object_name,object_id&nbsp;from&nbsp;user_objects<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;where&nbsp;instr(object_name,'LOG')&gt;0;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查看某表的创建时间<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt;select&nbsp;object_name,created&nbsp;from&nbsp;user_objects&nbsp;where&nbsp;object_name=upper('&amp;table_name');<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查看某表的大小<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt;select&nbsp;sum(bytes)/(1024*1024)&nbsp;as&nbsp;"size(M)"&nbsp;from&nbsp;user_segments<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;where&nbsp;segment_name=upper('&amp;table_name');<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查看放在ORACLE的内存区里的表<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt;select&nbsp;table_name,cache&nbsp;from&nbsp;user_tables&nbsp;where&nbsp;instr(cache,'Y')&gt;0;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;3、索引<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查看索引个数和类别<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt;select&nbsp;index_name,index_type,table_name&nbsp;from&nbsp;user_indexes&nbsp;order&nbsp;by&nbsp;table_name;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查看索引被索引的字段<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt;select&nbsp;*&nbsp;from&nbsp;user_ind_columns&nbsp;where&nbsp;index_name=upper('&amp;index_name');<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查看索引的大小<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt;select&nbsp;sum(bytes)/(1024*1024)&nbsp;as&nbsp;"size(M)"&nbsp;from&nbsp;user_segments<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;where&nbsp;segment_name=upper('&amp;index_name');<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;4、序列号<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查看序列号，last_number是当前值<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt;select&nbsp;*&nbsp;from&nbsp;user_sequences;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;5、视图<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查看视图的名称<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt;select&nbsp;view_name&nbsp;from&nbsp;user_views;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查看创建视图的select语句<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt;set&nbsp;view_name,text_length&nbsp;from&nbsp;user_views;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt;set&nbsp;long&nbsp;2000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;说明：可以根据视图的text_length值设定set&nbsp;long&nbsp;的大小<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt;select&nbsp;text&nbsp;from&nbsp;user_views&nbsp;where&nbsp;view_name=upper('&amp;view_name');<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;6、同义词<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查看同义词的名称<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt;select&nbsp;*&nbsp;from&nbsp;user_synonyms;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;7、约束条件<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查看某表的约束条件<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt;select&nbsp;constraint_name,&nbsp;constraint_type,search_condition,&nbsp;r_constraint_name<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;user_constraints&nbsp;where&nbsp;table_name&nbsp;=&nbsp;upper('&amp;table_name');<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt;select&nbsp;c.constraint_name,c.constraint_type,cc.column_name<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;user_constraints&nbsp;c,user_cons_columns&nbsp;cc<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;where&nbsp;c.owner&nbsp;=&nbsp;upper('&amp;table_owner')&nbsp;and&nbsp;c.table_name&nbsp;=&nbsp;upper('&amp;table_name')<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and&nbsp;c.owner&nbsp;=&nbsp;cc.owner&nbsp;and&nbsp;c.constraint_name&nbsp;=&nbsp;cc.constraint_name<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;order&nbsp;by&nbsp;cc.position;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;8、存储函数和过程<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查看函数和过程的状态<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt;select&nbsp;object_name,status&nbsp;from&nbsp;user_objects&nbsp;where&nbsp;object_type='FUNCTION';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt;select&nbsp;object_name,status&nbsp;from&nbsp;user_objects&nbsp;where&nbsp;object_type='PROCEDURE';<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查看函数和过程的源代码<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt;select&nbsp;text&nbsp;from&nbsp;all_source&nbsp;where&nbsp;owner=user&nbsp;and&nbsp;name=upper('&amp;plsql_name');<br /><br /><br />三、查看数据库的SQL<br />1、查看表空间的名称及大小<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;t.tablespace_name,&nbsp;round(sum(bytes/(1024*1024)),0)&nbsp;ts_size<br />&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;dba_tablespaces&nbsp;t,&nbsp;dba_data_files&nbsp;d<br />&nbsp;&nbsp;&nbsp;&nbsp;where&nbsp;t.tablespace_name&nbsp;=&nbsp;d.tablespace_name<br />&nbsp;&nbsp;&nbsp;&nbsp;group&nbsp;by&nbsp;t.tablespace_name;<br /><br />2、查看表空间物理文件的名称及大小<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;tablespace_name,&nbsp;file_id,&nbsp;file_name,<br />&nbsp;&nbsp;&nbsp;&nbsp;round(bytes/(1024*1024),0)&nbsp;total_space<br />&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;dba_data_files<br />&nbsp;&nbsp;&nbsp;&nbsp;order&nbsp;by&nbsp;tablespace_name;<br /><br />3、查看回滚段名称及大小<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;segment_name,&nbsp;tablespace_name,&nbsp;r.status,<br />&nbsp;&nbsp;&nbsp;&nbsp;(initial_extent/1024)&nbsp;InitialExtent,(next_extent/1024)&nbsp;NextExtent,<br />&nbsp;&nbsp;&nbsp;&nbsp;max_extents,&nbsp;v.curext&nbsp;CurExtent<br />&nbsp;&nbsp;&nbsp;&nbsp;From&nbsp;dba_rollback_segs&nbsp;r,&nbsp;v＄rollstat&nbsp;v<br />&nbsp;&nbsp;&nbsp;&nbsp;Where&nbsp;r.segment_id&nbsp;=&nbsp;v.usn(+)<br />&nbsp;&nbsp;&nbsp;&nbsp;order&nbsp;by&nbsp;segment_name&nbsp;;<br /><br />4、查看控制文件<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;name&nbsp;from&nbsp;v＄controlfile;<br /><br />5、查看日志文件<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;member&nbsp;from&nbsp;v＄logfile;<br /><br />6、查看表空间的使用情况<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;sum(bytes)/(1024*1024)&nbsp;as&nbsp;free_space,tablespace_name<br />&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;dba_free_space<br />&nbsp;&nbsp;&nbsp;&nbsp;group&nbsp;by&nbsp;tablespace_name;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;SELECT&nbsp;A.TABLESPACE_NAME,A.BYTES&nbsp;TOTAL,B.BYTES&nbsp;USED,&nbsp;C.BYTES&nbsp;FREE,<br />&nbsp;&nbsp;&nbsp;&nbsp;(B.BYTES*100)/A.BYTES&nbsp;"%&nbsp;USED",(C.BYTES*100)/A.BYTES&nbsp;"%&nbsp;FREE"<br />&nbsp;&nbsp;&nbsp;&nbsp;FROM&nbsp;SYS.SM＄TS_AVAIL&nbsp;A,SYS.SM＄TS_USED&nbsp;B,SYS.SM＄TS_FREE&nbsp;C<br />&nbsp;&nbsp;&nbsp;&nbsp;WHERE&nbsp;A.TABLESPACE_NAME=B.TABLESPACE_NAME&nbsp;AND&nbsp;A.TABLESPACE_NAME=C.TABLESPACE_NAME;<br /><br />7、查看数据库库对象<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;owner,&nbsp;object_type,&nbsp;status,&nbsp;count(*)&nbsp;count#&nbsp;from&nbsp;all_objects&nbsp;group&nbsp;by&nbsp;owner,&nbsp;object_type,&nbsp;status;<br /><br />8、查看数据库的版本<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;Select&nbsp;version&nbsp;FROM&nbsp;Product_component_version<br />&nbsp;&nbsp;&nbsp;&nbsp;Where&nbsp;SUBSTR(PRODUCT,1,6)='Oracle';<br /><br />9、查看数据库的创建日期和归档方式<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;Select&nbsp;Created,&nbsp;Log_Mode,&nbsp;Log_Mode&nbsp;From&nbsp;V＄Database;<br />四、ORACLE用户连接的管理<br /><br />用系统管理员，查看当前数据库有几个用户连接：<br /><br />SQL&gt;&nbsp;select&nbsp;username,sid,serial#&nbsp;from&nbsp;v＄session;<br /><br />如果要停某个连接用<br /><br />SQL&gt;&nbsp;alter&nbsp;system&nbsp;kill&nbsp;session&nbsp;'sid,serial#';<br /><br />如果这命令不行,找它UNIX的进程数<br /><br />SQL&gt;&nbsp;select&nbsp;pro.spid&nbsp;from&nbsp;v＄session&nbsp;ses,v＄process&nbsp;pro&nbsp;where&nbsp;ses.sid=21&nbsp;and&nbsp;ses.paddr=pro.addr;<br /><br />说明：21是某个连接的sid数<br /><br />然后用&nbsp;kill&nbsp;命令杀此进程号。<br /><br /><br /><br /><br />五、SQL*PLUS使用<br />a、近入SQL*Plus<br />＄sqlplus&nbsp;用户名/密码<br /><br />&nbsp;&nbsp;&nbsp;退出SQL*Plus<br />SQL&gt;exit<br /><br />b、在sqlplus下得到帮助信息<br />列出全部SQL命令和SQL*Plus命令<br />SQL&gt;help<br />列出某个特定的命令的信息<br />SQL&gt;help&nbsp;命令名<br /><br />c、显示表结构命令DESCRIBE<br />SQL&gt;DESC&nbsp;表名<br /><br />d、SQL*Plus中的编辑命令<br />显示SQL缓冲区命令<br />SQL&gt;L<br /><br />修改SQL命令<br />首先要将待改正行变为当前行<br />SQL&gt;n<br />用CHANGE命令修改内容<br />SQL&gt;c/旧/新<br />重新确认是否已正确<br />SQL&gt;L<br /><br />使用INPUT命令可以在SQL缓冲区中增加一行或多行<br />SQL&gt;i<br />SQL&gt;输入内容<br /><br />e、调用外部系统编辑器<br />SQL&gt;edit&nbsp;文件名<br />可以使用DEFINE命令设置系统变量EDITOR来改变文本编辑器的类型，在login.sql文件中定义如下一行<br />DEFINE_EDITOR=vi<br /><br />f、运行命令文件<br />SQL&gt;START&nbsp;test<br />SQL&gt;@test<br /><br />常用SQL*Plus语句<br />a、表的创建、修改、删除<br />创建表的命令格式如下：<br />create&nbsp;table&nbsp;表名&nbsp;（列说明列表）；<br /><br />为基表增加新列命令如下：<br />ALTER&nbsp;TABLE&nbsp;表名&nbsp;ADD&nbsp;（列说明列表）<br />例：为test表增加一列Age，用来存放年龄<br />&nbsp;&nbsp;&nbsp;&nbsp;sql&gt;alter&nbsp;table&nbsp;test<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add&nbsp;（Age&nbsp;number(3)）；<br /><br />修改基表列定义命令如下：<br />ALTER&nbsp;TABLE&nbsp;表名<br />MODIFY&nbsp;（列名&nbsp;数据类型）<br />例：将test表中的Count列宽度加长为10个字符<br />&nbsp;&nbsp;&nbsp;&nbsp;sql&gt;alter&nbsp;atble&nbsp;test<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;modify&nbsp;（County&nbsp;char(10)）；<br /><br />b、将一张表删除语句的格式如下：<br />DORP&nbsp;TABLE&nbsp;表名；<br />例：表删除将同时删除表的数据和表的定义<br />sql&gt;drop&nbsp;table&nbsp;test<br /><br />c、表空间的创建、删除<br /><br /><br />六、ORACLE逻辑备份的SH文件<br /><br />完全备份的SH文件：exp_comp.sh<br /><br />rq=`&nbsp;date&nbsp;+"%m%d"&nbsp;`<br /><br />su&nbsp;-&nbsp;oracle&nbsp;-c&nbsp;"exp&nbsp;system/manager&nbsp;full=y&nbsp;inctype=complete&nbsp;file=/oracle/export/db_comp＄rq.dmp"<br /><br />累计备份的SH文件：exp_cumu.sh<br /><br />rq=`&nbsp;date&nbsp;+"%m%d"&nbsp;`<br /><br />su&nbsp;-&nbsp;oracle&nbsp;-c&nbsp;"exp&nbsp;system/manager&nbsp;full=y&nbsp;inctype=cumulative&nbsp;file=/oracle/export/db_cumu＄rq.dmp"<br /><br />增量备份的SH文件:&nbsp;exp_incr.sh<br /><br />rq=`&nbsp;date&nbsp;+"%m%d"&nbsp;`<br /><br />su&nbsp;-&nbsp;oracle&nbsp;-c&nbsp;"exp&nbsp;system/manager&nbsp;full=y&nbsp;inctype=incremental&nbsp;file=/oracle/export/db_incr＄rq.dmp"<br /><br />root用户crontab文件<br />/var/spool/cron/crontabs/root增加以下内容<br /><br />0&nbsp;2&nbsp;1&nbsp;*&nbsp;*&nbsp;/oracle/exp_comp.sh<br /><br />30&nbsp;2&nbsp;*&nbsp;*&nbsp;0-5&nbsp;/oracle/exp_incr.sh<br /><br />45&nbsp;2&nbsp;*&nbsp;*&nbsp;6&nbsp;/oracle/exp_cumu.sh<br /><br />当然这个时间表可以根据不同的需求来改变的，这只是一个例子。<br /><br /><br /><br />七、ORACLE&nbsp;常用的SQL语法和数据对象<br /><br />一.数据控制语句&nbsp;(DML)&nbsp;部分<br /><br />1.INSERT&nbsp;&nbsp;(往数据表里插入记录的语句)<br /><br />INSERT&nbsp;INTO&nbsp;表名(字段名1,&nbsp;字段名2,&nbsp;&#8230;&#8230;)&nbsp;VALUES&nbsp;(&nbsp;值1,&nbsp;值2,&nbsp;&#8230;&#8230;);<br />INSERT&nbsp;INTO&nbsp;表名(字段名1,&nbsp;字段名2,&nbsp;&#8230;&#8230;)&nbsp;&nbsp;SELECT&nbsp;(字段名1,&nbsp;字段名2,&nbsp;&#8230;&#8230;)&nbsp;FROM&nbsp;另外的表名;<br /><br />字符串类型的字段值必须用单引号括起来,&nbsp;例如:&nbsp;&#8217;GOOD&nbsp;DAY&#8217;<br />如果字段值里包含单引号&#8217;&nbsp;需要进行字符串转换,&nbsp;我们把它替换成两个单引号'.<br />字符串类型的字段值超过定义的长度会出错,&nbsp;最好在插入前进行长度校验.<br /><br />日期字段的字段值可以用当前数据库的系统时间SYSDATE,&nbsp;精确到秒<br />或者用字符串转换成日期型函数TO_DATE(&#8216;2001-08-01&#8217;,&#8217;YYYY-MM-DD&#8217;)<br />TO_DATE()还有很多种日期格式,&nbsp;可以参看ORACLE&nbsp;DOC.<br />年-月-日&nbsp;小时:分钟:秒&nbsp;的格式YYYY-MM-DD&nbsp;HH24:MI:SS<br /><br />INSERT时最大可操作的字符串长度小于等于4000个单字节,&nbsp;如果要插入更长的字符串,&nbsp;请考虑字段用CLOB类型,<br />方法借用ORACLE里自带的DBMS_LOB程序包.<br /><br />INSERT时如果要用到从1开始自动增长的序列号,&nbsp;应该先建立一个序列号<br />CREATE&nbsp;SEQUENCE&nbsp;序列号的名称&nbsp;(最好是表名+序列号标记)&nbsp;INCREMENT&nbsp;BY&nbsp;1&nbsp;&nbsp;START&nbsp;&nbsp;WITH&nbsp;&nbsp;1<br />MAXVALUE&nbsp;&nbsp;99999&nbsp;&nbsp;CYCLE&nbsp;&nbsp;NOCACHE;<br />其中最大的值按字段的长度来定,&nbsp;如果定义的自动增长的序列号&nbsp;NUMBER(6)&nbsp;,&nbsp;最大值为999999<br />INSERT&nbsp;语句插入这个字段值为:&nbsp;序列号的名称.NEXTVAL<br /><br />2.DELETE&nbsp;&nbsp;(删除数据表里记录的语句)<br /><br />DELETE&nbsp;FROM表名&nbsp;WHERE&nbsp;条件;<br /><br />注意：删除记录并不能释放ORACLE里被占用的数据块表空间.&nbsp;它只把那些被删除的数据块标成unused.<br /><br />如果确实要删除一个大表里的全部记录,&nbsp;可以用&nbsp;TRUNCATE&nbsp;命令,&nbsp;它可以释放占用的数据块表空间<br />TRUNCATE&nbsp;TABLE&nbsp;表名;<br />此操作不可回退.<br /><br />3.UPDATE&nbsp;&nbsp;(修改数据表里记录的语句)<br /><br />UPDATE表名&nbsp;SET&nbsp;字段名1=值1,&nbsp;字段名2=值2,&nbsp;&#8230;&#8230;&nbsp;WHERE&nbsp;条件;<br /><br />如果修改的值N没有赋值或定义时,&nbsp;将把原来的记录内容清为NULL,&nbsp;最好在修改前进行非空校验;<br />值N超过定义的长度会出错,&nbsp;最好在插入前进行长度校验..<br /><br />注意事项:<br />A.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;以上SQL语句对表都加上了行级锁,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;确认完成后,&nbsp;必须加上事物处理结束的命令&nbsp;COMMIT&nbsp;才能正式生效,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;否则改变不一定写入数据库里.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果想撤回这些操作,&nbsp;可以用命令&nbsp;ROLLBACK&nbsp;复原.<br /><br />B.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在运行INSERT,&nbsp;DELETE&nbsp;和&nbsp;UPDATE&nbsp;语句前最好估算一下可能操作的记录范围,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;应该把它限定在较小&nbsp;(一万条记录)&nbsp;范围内,.&nbsp;否则ORACLE处理这个事物用到很大的回退段.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;程序响应慢甚至失去响应.&nbsp;如果记录数上十万以上这些操作,&nbsp;可以把这些SQL语句分段分次完成,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;其间加上COMMIT&nbsp;确认事物处理.<br />二.数据定义&nbsp;(DDL)&nbsp;部分<br /><br />1.CREATE&nbsp;(创建表,&nbsp;索引,&nbsp;视图,&nbsp;同义词,&nbsp;过程,&nbsp;函数,&nbsp;数据库链接等)<br /><br />ORACLE常用的字段类型有<br />CHAR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;固定长度的字符串<br />VARCHAR2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;可变长度的字符串<br />NUMBER(M,N)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;数字型M是位数总长度,&nbsp;N是小数的长度<br />DATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;日期类型<br /><br />创建表时要把较小的不为空的字段放在前面,&nbsp;可能为空的字段放在后面<br /><br />创建表时可以用中文的字段名,&nbsp;但最好还是用英文的字段名<br /><br />创建表时可以给字段加上默认值,&nbsp;例如&nbsp;DEFAULT&nbsp;SYSDATE<br />这样每次插入和修改时,&nbsp;不用程序操作这个字段都能得到动作的时间<br /><br />创建表时可以给字段加上约束条件<br />例如&nbsp;不允许重复&nbsp;UNIQUE,&nbsp;关键字&nbsp;PRIMARY&nbsp;KEY<br /><br />2.ALTER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(改变表,&nbsp;索引,&nbsp;视图等)<br /><br />改变表的名称<br />ALTER&nbsp;TABLE&nbsp;表名1&nbsp;&nbsp;TO&nbsp;表名2;<br /><br />在表的后面增加一个字段<br />ALTER&nbsp;TABLE表名&nbsp;ADD&nbsp;字段名&nbsp;字段名描述;<br /><br />修改表里字段的定义描述<br />ALTER&nbsp;TABLE表名&nbsp;MODIFY字段名&nbsp;字段名描述;<br /><br />给表里的字段加上约束条件<br />ALTER&nbsp;TABLE&nbsp;表名&nbsp;ADD&nbsp;CONSTRAINT&nbsp;约束名&nbsp;PRIMARY&nbsp;KEY&nbsp;(字段名);<br />ALTER&nbsp;TABLE&nbsp;表名&nbsp;ADD&nbsp;CONSTRAINT&nbsp;约束名&nbsp;UNIQUE&nbsp;(字段名);<br /><br />把表放在或取出数据库的内存区<br />ALTER&nbsp;TABLE&nbsp;表名&nbsp;CACHE;<br />ALTER&nbsp;TABLE&nbsp;表名&nbsp;NOCACHE;<br /><br />3.DROP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(删除表,&nbsp;索引,&nbsp;视图,&nbsp;同义词,&nbsp;过程,&nbsp;函数,&nbsp;数据库链接等)<br /><br />删除表和它所有的约束条件<br />DROP&nbsp;TABLE&nbsp;表名&nbsp;CASCADE&nbsp;CONSTRAINTS;<br /><br />4.TRUNCATE&nbsp;(清空表里的所有记录,&nbsp;保留表的结构)<br /><br />TRUNCATE&nbsp;表名;<br /><br />三.查询语句&nbsp;(SELECT)&nbsp;部分<br /><br />SELECT字段名1,&nbsp;字段名2,&nbsp;&#8230;&#8230;&nbsp;FROM&nbsp;表名1,&nbsp;[表名2,&nbsp;&#8230;&#8230;]&nbsp;WHERE&nbsp;条件;<br /><br />字段名可以带入函数<br />&nbsp;&nbsp;例如:&nbsp;&nbsp;COUNT(*),&nbsp;MIN(字段名),&nbsp;&nbsp;MAX(字段名),&nbsp;&nbsp;AVG(字段名),&nbsp;DISTINCT(字段名),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TO_CHAR(DATE字段名,'YYYY-MM-DD&nbsp;HH24:MI:SS')<br /><br />NVL(EXPR1,&nbsp;EXPR2)函数<br />解释:<br />IF&nbsp;EXPR1=NULL<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RETURN&nbsp;EXPR2<br />ELSE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RETURN&nbsp;EXPR1<br /><br />DECODE(AA﹐V1﹐R1﹐V2﹐R2....)函数<br />解释:<br />IF&nbsp;AA=V1&nbsp;THEN&nbsp;RETURN&nbsp;R1<br />IF&nbsp;AA=V2&nbsp;THEN&nbsp;RETURN&nbsp;R2<br />..&#8230;<br /><br />ELSE<br />RETURN&nbsp;NULL<br /><br />LPAD(char1,n,char2)函数<br />解释:<br />字符char1按制定的位数n显示，不足的位数用char2字符串替换左边的空位<br /><br />字段名之间可以进行算术运算<br />例如:&nbsp;&nbsp;(字段名1*字段名1)/3<br /><br />查询语句可以嵌套<br />例如:&nbsp;SELECT&nbsp;&#8230;&#8230;&nbsp;FROM<br />(SELECT&nbsp;&#8230;&#8230;&nbsp;FROM表名1,&nbsp;[表名2,&nbsp;&#8230;&#8230;]&nbsp;WHERE&nbsp;条件)&nbsp;WHERE&nbsp;条件2;<br /><br />两个查询语句的结果可以做集合操作<br />例如:&nbsp;并集UNION(去掉重复记录),&nbsp;并集UNION&nbsp;ALL(不去掉重复记录),&nbsp;差集MINUS,&nbsp;&nbsp;交集INTERSECT<br /><br />分组查询<br />SELECT字段名1,&nbsp;字段名2,&nbsp;&#8230;&#8230;&nbsp;FROM&nbsp;表名1,&nbsp;[表名2,&nbsp;&#8230;&#8230;]&nbsp;GROUP&nbsp;BY字段名1<br />[HAVING&nbsp;条件]&nbsp;;<br /><br />两个以上表之间的连接查询<br /><br />SELECT字段名1,&nbsp;字段名2,&nbsp;&#8230;&#8230;&nbsp;FROM&nbsp;表名1,&nbsp;[表名2,&nbsp;&#8230;&#8230;]&nbsp;WHERE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;表名1.字段名&nbsp;=&nbsp;表名2.&nbsp;字段名&nbsp;[&nbsp;AND&nbsp;&#8230;&#8230;]&nbsp;;<br /><br />SELECT字段名1,&nbsp;字段名2,&nbsp;&#8230;&#8230;&nbsp;FROM&nbsp;表名1,&nbsp;[表名2,&nbsp;&#8230;&#8230;]&nbsp;WHERE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;表名1.字段名&nbsp;=&nbsp;表名2.&nbsp;字段名(+)&nbsp;[&nbsp;AND&nbsp;&#8230;&#8230;]&nbsp;;<br /><br />有(+)号的字段位置自动补空值<br /><br />查询结果集的排序操作,&nbsp;默认的排序是升序ASC,&nbsp;降序是DESC<br /><br />SELECT字段名1,&nbsp;字段名2,&nbsp;&#8230;&#8230;&nbsp;FROM&nbsp;表名1,&nbsp;[表名2,&nbsp;&#8230;&#8230;]<br />ORDER&nbsp;BY字段名1,&nbsp;字段名2&nbsp;DESC;<br /><br />字符串模糊比较的方法<br /><br />INSTR(字段名,&nbsp;&#8216;字符串&#8217;)&gt;0<br />字段名&nbsp;LIKE&nbsp;&nbsp;&#8216;字符串%&#8217;&nbsp;&nbsp;[&#8216;%字符串%&#8217;]<br /><br />每个表都有一个隐含的字段ROWID,&nbsp;它标记着记录的唯一性.<br /><br />四.ORACLE里常用的数据对象&nbsp;(SCHEMA)<br /><br />1.索引&nbsp;(INDEX)<br /><br />CREATE&nbsp;INDEX&nbsp;索引名ON&nbsp;表名&nbsp;(&nbsp;字段1,&nbsp;[字段2,&nbsp;&#8230;&#8230;]&nbsp;;<br />ALTER&nbsp;INDEX&nbsp;索引名&nbsp;REBUILD;<br /><br />一个表的索引最好不要超过三个&nbsp;(特殊的大表除外),&nbsp;最好用单字段索引,&nbsp;结合SQL语句的分析执行情况,<br />也可以建立多字段的组合索引和基于函数的索引<br /><br />ORACLE8.1.7字符串可以索引的最大长度为1578&nbsp;单字节<br />ORACLE8.0.6字符串可以索引的最大长度为758&nbsp;单字节<br /><br />2.视图&nbsp;(VIEW)<br /><br />CREATE&nbsp;VIEW&nbsp;视图名AS&nbsp;SELECT&nbsp;&#8230;.&nbsp;FROM&nbsp;&#8230;..;<br />ALTER&nbsp;VIEW视图名&nbsp;COMPILE;<br /><br />视图仅是一个SQL查询语句,&nbsp;它可以把表之间复杂的关系简洁化.<br /><br />3.同义词&nbsp;(SYNONMY)<br />CREATE&nbsp;SYNONYM同义词名FOR&nbsp;表名;<br />CREATE&nbsp;SYNONYM同义词名FOR&nbsp;表名@数据库链接名;<br /><br />4.数据库链接&nbsp;(DATABASE&nbsp;LINK)<br />CREATE&nbsp;DATABASE&nbsp;LINK数据库链接名CONNECT&nbsp;TO&nbsp;用户名&nbsp;IDENTIFIED&nbsp;BY&nbsp;密码&nbsp;USING&nbsp;&#8216;数据库连接字符串&#8217;;<br /><br />数据库连接字符串可以用NET8&nbsp;EASY&nbsp;CONFIG或者直接修改TNSNAMES.ORA里定义.<br /><br />数据库参数global_name=true时要求数据库链接名称跟远端数据库名称一样<br /><br />数据库全局名称可以用以下命令查出<br />SELECT&nbsp;*&nbsp;FROM&nbsp;GLOBAL_NAME;<br /><br />查询远端数据库里的表<br />SELECT&nbsp;&#8230;&#8230;&nbsp;FROM&nbsp;表名@数据库链接名;<br /><br />五.权限管理&nbsp;(DCL)&nbsp;语句<br /><br />1.GRANT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;赋于权限<br />常用的系统权限集合有以下三个:<br />CONNECT(基本的连接),&nbsp;RESOURCE(程序开发),&nbsp;DBA(数据库管理)<br />常用的数据对象权限有以下五个:<br />ALL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ON&nbsp;数据对象名,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SELECT&nbsp;ON&nbsp;数据对象名,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UPDATE&nbsp;ON&nbsp;数据对象名,<br />DELETE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ON&nbsp;数据对象名,&nbsp;&nbsp;INSERT&nbsp;ON&nbsp;数据对象名,&nbsp;&nbsp;&nbsp;ALTER&nbsp;&nbsp;ON&nbsp;数据对象名<br /><br />GRANT&nbsp;CONNECT,&nbsp;RESOURCE&nbsp;TO&nbsp;用户名;<br />GRANT&nbsp;SELECT&nbsp;ON&nbsp;表名&nbsp;TO&nbsp;用户名;<br />GRANT&nbsp;SELECT,&nbsp;INSERT,&nbsp;DELETE&nbsp;ON表名&nbsp;TO&nbsp;用户名1,&nbsp;用户名2;<br /><br />2.REVOKE&nbsp;回收权限<br /><br />REVOKE&nbsp;CONNECT,&nbsp;RESOURCE&nbsp;FROM&nbsp;用户名;<br />REVOKE&nbsp;SELECT&nbsp;ON&nbsp;表名&nbsp;FROM&nbsp;用户名;<br />REVOKE&nbsp;SELECT,&nbsp;INSERT,&nbsp;DELETE&nbsp;ON表名&nbsp;FROM&nbsp;用户名1,&nbsp;用户名2;<br /><br /><br />查询数据库中第63号错误：<br />select&nbsp;orgaddr,destaddr&nbsp;from&nbsp;sm_histable0116&nbsp;where&nbsp;error_code='63';<br /><br />查询数据库中开户用户最大提交和最大下发数：&nbsp;select&nbsp;MSISDN,TCOS,OCOS&nbsp;from&nbsp;ms_usertable；<br /><br /><br />查询数据库中各种错误代码的总和：<br />select&nbsp;error_code,count(*)&nbsp;from&nbsp;sm_histable0513&nbsp;group&nbsp;by&nbsp;error_code&nbsp;order<br />by&nbsp;error_code;<br /><br />查询报表数据库中话单统计种类查询。<br />select&nbsp;sum(Successcount)&nbsp;from&nbsp;tbl_MiddleMt0411&nbsp;where&nbsp;ServiceType2=111<br />select&nbsp;sum(successcount),servicetype&nbsp;from&nbsp;tbl_middlemt0411&nbsp;group&nbsp;by&nbsp;servicetype</div></div><img src ="http://www.blogjava.net/jjshcc/aggbug/416401.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jjshcc/" target="_blank">Eric_jiang</a> 2014-07-31 12:57 <a href="http://www.blogjava.net/jjshcc/archive/2014/07/31/416401.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>