??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲第一极品精品无码久久,亚洲JIZZJIZZ中国少妇中文,亚洲不卡中文字幕http://www.tkk7.com/ocean07000814/category/15459.html共同探讨STRUTS#HIBERNATE#SPRING#EJB{技?/description>zh-cnTue, 10 May 2011 10:13:21 GMTTue, 10 May 2011 10:13:21 GMT60Oracle中的BLOB和CLOBhttp://www.tkk7.com/ocean07000814/articles/349569.html非洲白?/dc:creator>非洲白?/author>Thu, 05 May 2011 03:07:00 GMThttp://www.tkk7.com/ocean07000814/articles/349569.htmlhttp://www.tkk7.com/ocean07000814/comments/349569.htmlhttp://www.tkk7.com/ocean07000814/articles/349569.html#Feedback0http://www.tkk7.com/ocean07000814/comments/commentRss/349569.htmlhttp://www.tkk7.com/ocean07000814/services/trackbacks/349569.html
一、区别和定义

       LONG: 可变长的字符串数据,最?GQLONGhVARCHAR2列的Ҏ(gu),可以存储长文本一个表中最多一个LONG?br />
  LONG RAW: 可变长二q制数据Q最?G

  CLOB: 字符大对象Clob 用来存储单字节的字符数据

  NCLOB: 用来存储多字节的字符数据

  BLOB: 用于存储二进制数?br />
  BFILE: 存储在文件中的二q制数据Q这个文件中的数据只能被只读ѝ但该文件不包含在数据库内?br />
        bfile字段实际的文件存储在文gpȝ?字段中存储的是文件定位指?bfile对oracle来说是只ȝ,也不参与事务性控制和数据恢复.

 

  CLOBQNCLOBQBLOB都是内部的LOB(Large Object)cdQ最?GQ没有LONG只能有一列的限制

  要保存图片、文本文件、Word文g各自最好用哪种数据cd?

  --BLOB最好,LONG RAW也不错,但Long是oracle要废弃的类型,因此用BLOB?br />
二、操?br />
1?get


CLOB


java 代码


//获得数据库连?nbsp;  
     Connection con = ConnectionFactory.getConnection();   
     con.setAutoCommit(false);   
     Statement st = con.createStatement();   
     //不需?#8220;for update”   
     ResultSet rs = st.executeQuery("select CLOBATTR from TESTCLOB where ID=1");   
     if (rs.next())   
     {   
         java.sql.Clob clob = rs.getClob("CLOBATTR");   
         Reader inStream = clob.getCharacterStream();   
         char[] c = new char[(int) clob.length()];   
         inStream.read(c);   
         //data是读出ƈ需要返回的数据Q类型是String   
         data = new String(c);   
         inStream.close();   
     }   
     inStream.close();   
     con.commit();   
     con.close();   
   


BLOB

java 代码


//获得数据库连?nbsp;  
     Connection con = ConnectionFactory.getConnection();   
     con.setAutoCommit(false);   
     Statement st = con.createStatement();   
     //不需?#8220;for update”   
     ResultSet rs = st.executeQuery("select BLOBATTR from TESTBLOB where ID=1");   
     if (rs.next())   
     {   
         java.sql.Blob blob = rs.getBlob("BLOBATTR");   
         InputStream inStream = blob.getBinaryStream();   
         //data是读出ƈ需要返回的数据Q类型是byte[]   
         data = new byte[input.available()];   
         inStream.read(data);   
         inStream.close();   
     }   
     inStream.close();   
     con.commit();   
     con.close();   


2?put

CLOB

java 代码


//获得数据库连?nbsp;  
     Connection con = ConnectionFactory.getConnection();   
     con.setAutoCommit(false);   
     Statement st = con.createStatement();   
     //插入一个空对象empty_clob()   
     st.executeUpdate("insert into TESTCLOB (ID, NAME, CLOBATTR) values (1, "thename", empty_clob())");   
     //锁定数据行进行更斎ͼ注意“for update”语句   
     ResultSet rs = st.executeQuery("select CLOBATTR from TESTCLOB where ID=1 for update");   
     if (rs.next())   
     {   
         //得到java.sql.Clob对象后强制{换ؓoracle.sql.CLOB   
         oracle.sql.CLOB clob = (oracle.sql.CLOB) rs.getClob("CLOBATTR");   
         Writer outStream = clob.getCharacterOutputStream();   
         //data是传入的字符Ԍ定义QString data   
         char[] c = data.toCharArray();   
         outStream.write(c, 0, c.length);   
     }   
     outStream.flush();   
     outStream.close();   
     con.commit();   
     con.close();   
  

BLOB

java 代码


//获得数据库连?nbsp;  
     Connection con = ConnectionFactory.getConnection();   
     con.setAutoCommit(false);   
     Statement st = con.createStatement();   
     //插入一个空对象empty_blob()   
     st.executeUpdate("insert into TESTBLOB (ID, NAME, BLOBATTR) values (1, "thename", empty_blob())");   
     //锁定数据行进行更斎ͼ注意“for update”语句   
     ResultSet rs = st.executeQuery("select BLOBATTR from TESTBLOB where ID=1 for update");   
     if (rs.next())   
     {   
         //得到java.sql.Blob对象后强制{换ؓoracle.sql.BLOB   
         oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob("BLOBATTR");   
         OutputStream outStream = blob.getBinaryOutputStream();   
         //data是传入的byte数组Q定义:byte[] data   
         outStream.write(data, 0, data.length);   
     }   
     outStream.flush();   
     outStream.close();   
     con.commit();   
     con.close();   


=======================================================================

厚厚发表?2006q?6?7?

|络上很多关于JAVA对Oracle中BLOB、CLOBcd字段的操作说明,有的不够全面Q有的不够准,甚至有的直就是胡说八道。最q的目正y用到了这斚w的知识,在这里做个ȝ?br /> 环境Q?br /> Database: Oracle 9i
App Server: BEA Weblogic 8.14
表结构:
CREATE TABLE TESTBLOB (ID Int, NAME Varchar2(20), BLOBATTR Blob)
CREATE TABLE TESTBLOB (ID Int, NAME Varchar2(20), CLOBATTR Clob)
JAVA可以通过JDBCQ也可以通过JNDI讉Kq操作数据库Q这两种方式的具体操作存在着一些差异,׃通过App Server的数据库q接池JNDI获得的数据库q接提供的java.sql.Blob和java.sql.Clob实现cMJDBC方式提供的不同,因此在入库操作的时候需要分别对待;出库操作没有q种差异Q因此不用单独对待?br />
一、BLOB操作
1、入?br /> Q?QJDBC方式
//通过JDBC获得数据库连?br /> Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:testdb", "test", "test");
con.setAutoCommit(false);
Statement st = con.createStatement();
//插入一个空对象empty_blob()
st.executeUpdate("insert into TESTBLOB (ID, NAME, BLOBATTR) values (1, "thename", empty_blob())");
//锁定数据行进行更斎ͼ注意“for update”语句
ResultSet rs = st.executeQuery("select BLOBATTR from TESTBLOB where ID=1 for update");
if (rs.next())
{
//得到java.sql.Blob对象后强制{换ؓoracle.sql.BLOB
oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob("BLOBATTR");
OutputStream outStream = blob.getBinaryOutputStream();
//data是传入的byte数组Q定义:byte[] data
outStream.write(data, 0, data.length);
}
outStream.flush();
outStream.close();
con.commit();
con.close();
Q?QJNDI方式
//通过JNDI获得数据库连?br /> Context context = new InitialContext();
ds = (DataSource) context.lookup("ORA_JNDI");
Connection con = ds.getConnection();
con.setAutoCommit(false);
Statement st = con.createStatement();
//插入一个空对象empty_blob()
st.executeUpdate("insert into TESTBLOB (ID, NAME, BLOBATTR) values (1, "thename", empty_blob())");
//锁定数据行进行更斎ͼ注意“for update”语句
ResultSet rs = st.executeQuery("select BLOBATTR from TESTBLOB where ID=1 for update");
if (rs.next())
{
//得到java.sql.Blob对象后强制{换ؓweblogic.jdbc.vendor.oracle.OracleThinBlobQ不同的App Server对应的可能会不同Q?br /> weblogic.jdbc.vendor.oracle.OracleThinBlob blob = (weblogic.jdbc.vendor.oracle.OracleThinBlob) rs.getBlob("BLOBATTR");
OutputStream outStream = blob.getBinaryOutputStream();
//data是传入的byte数组Q定义:byte[] data
outStream.write(data, 0, data.length);
}
outStream.flush();
outStream.close();
con.commit();
con.close();
2、出?br /> //获得数据库连?br /> Connection con = ConnectionFactory.getConnection();
con.setAutoCommit(false);
Statement st = con.createStatement();
//不需?#8220;for update”
ResultSet rs = st.executeQuery("select BLOBATTR from TESTBLOB where ID=1");
if (rs.next())
{
java.sql.Blob blob = rs.getBlob("BLOBATTR");
InputStream inStream = blob.getBinaryStream();
//data是读出ƈ需要返回的数据Q类型是byte[]
data = new byte[input.available()];
inStream.read(data);
inStream.close();
}
inStream.close();
con.commit();
con.close();
二、CLOB操作
1、入?br /> Q?QJDBC方式
//通过JDBC获得数据库连?br /> Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:testdb", "test", "test");
con.setAutoCommit(false);
Statement st = con.createStatement();
//插入一个空对象empty_clob()
st.executeUpdate("insert into TESTCLOB (ID, NAME, CLOBATTR) values (1, "thename", empty_clob())");
//锁定数据行进行更斎ͼ注意“for update”语句
ResultSet rs = st.executeQuery("select CLOBATTR from TESTCLOB where ID=1 for update");
if (rs.next())
{
//得到java.sql.Clob对象后强制{换ؓoracle.sql.CLOB
oracle.sql.CLOB clob = (oracle.sql.CLOB) rs.getClob("CLOBATTR");
Writer outStream = clob.getCharacterOutputStream();
//data是传入的字符Ԍ定义QString data
char[] c = data.toCharArray();
outStream.write(c, 0, c.length);
}
outStream.flush();
outStream.close();
con.commit();
con.close();
Q?QJNDI方式
//通过JNDI获得数据库连?br /> Context context = new InitialContext();
ds = (DataSource) context.lookup("ORA_JNDI");
Connection con = ds.getConnection();
con.setAutoCommit(false);
Statement st = con.createStatement();
//插入一个空对象empty_clob()
st.executeUpdate("insert into TESTCLOB (ID, NAME, CLOBATTR) values (1, "thename", empty_clob())");
//锁定数据行进行更斎ͼ注意“for update”语句
ResultSet rs = st.executeQuery("select CLOBATTR from TESTCLOB where ID=1 for update");
if (rs.next())
{
//得到java.sql.Clob对象后强制{换ؓweblogic.jdbc.vendor.oracle.OracleThinClobQ不同的App Server对应的可能会不同Q?br /> weblogic.jdbc.vendor.oracle.OracleThinClob clob = (weblogic.jdbc.vendor.oracle.OracleThinClob) rs.getClob("CLOBATTR");
Writer outStream = clob.getCharacterOutputStream();
//data是传入的字符Ԍ定义QString data
char[] c = data.toCharArray();
outStream.write(c, 0, c.length);
}
outStream.flush();
outStream.close();
con.commit();
con.close();
2、出?br /> //获得数据库连?br /> Connection con = ConnectionFactory.getConnection();
con.setAutoCommit(false);
Statement st = con.createStatement();
//不需?#8220;for update”
ResultSet rs = st.executeQuery("select CLOBATTR from TESTCLOB where ID=1");
if (rs.next())
{
java.sql.Clob clob = rs.getClob("CLOBATTR");
Reader inStream = clob.getCharacterStream();
char[] c = new char[(int) clob.length()];
inStream.read(c);
//data是读出ƈ需要返回的数据Q类型是String
data = new String(c);
inStream.close();
}
inStream.close();
con.commit();
con.close();
需要注意的地方Q?br /> 1、java.sql.Blob、oracle.sql.BLOB、weblogic.jdbc.vendor.oracle.OracleThinBlob几种cd的区?br /> 2、java.sql.Clob、oracle.sql.CLOB、weblogic.jdbc.vendor.oracle.OracleThinClob几种cd的区?

]]>
sql语句中or用法的优?/title><link>http://www.tkk7.com/ocean07000814/articles/346701.html</link><dc:creator>非洲白?/dc:creator><author>非洲白?/author><pubDate>Mon, 21 Mar 2011 12:11:00 GMT</pubDate><guid>http://www.tkk7.com/ocean07000814/articles/346701.html</guid><wfw:comment>http://www.tkk7.com/ocean07000814/comments/346701.html</wfw:comment><comments>http://www.tkk7.com/ocean07000814/articles/346701.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/ocean07000814/comments/commentRss/346701.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/ocean07000814/services/trackbacks/346701.html</trackback:ping><description><![CDATA[在SQL语句中用了OR之后, 其实很不Ҏ(gu)控制, W一ơ是惌一个带两个OR的用UNIONL? l果用了USE_CONCAT后变成了4个UNION? 居然没有办法让他按我惌的第一个ORq行UNION. W二ơ是在烦引上, OR条gD了不能在索引上进?a >条gqo</a>. 现在遇到了第三次, 是同事发现的, 怕自已记不住, 没有征得他的同? 在这儿共享出来了. <p>    有下面两个表, TYPE_ID列上值的重复性很?</p> <blockquote>CREATE TABLE T_SMALL (TYPE_ID, ID, ...);<br /> CREATE TABLE T_MIDDLE (TYPE_ID, ID1, ID2, ...); </blockquote> <p>    q行下面的SQL? L很慢, 我们已经指定用HASH JOIN, q也指定了T_SMALL是驱动表, 百思不得其? </p> <blockquote>SELECT .....<br />   FROM T_SMALL S, T_MIDDLE M<br />   WHERE S.TYPE_ID = M.TYPE_ID <br />     AND (S.ID = M.ID1 OR S.ID = M.ID2) </blockquote> <p>    W一N一思时, 发现了原因所? 因ؓOR的问? Oracle在做HASH JOIN时只依据了TYPE_IDq个效率不高的列, q时的PLAN中肯定出CFILTERq样的步? 后来这个语句手工改成UNION方式, ׃2个小时变成了15分钟. </p> <blockquote>SELECT .....<br />   FROM T_SMALL S, T_MIDDLE M<br />   WHERE S.TYPE_ID = M.TYPE_ID <br />     AND S.ID = M.ID1 <br /> UNION ALL <br /> SELECT .....<br />   FROM T_SMALL S, T_MIDDLE M<br />   WHERE S.TYPE_ID = M.TYPE_ID <br />     AND S.ID = M.ID2 AND M.ID1 <> M.ID2 </blockquote> <p>    SQL语句的调? 其实很需要功? 也是一门很q学问, 如此单的SQL, 也有很深ȝ知识.</p> <img src ="http://www.tkk7.com/ocean07000814/aggbug/346701.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/ocean07000814/" target="_blank">非洲白?/a> 2011-03-21 20:11 <a href="http://www.tkk7.com/ocean07000814/articles/346701.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>物化视图http://www.tkk7.com/ocean07000814/articles/342428.html非洲白?/dc:creator>非洲白?/author>Thu, 06 Jan 2011 07:08:00 GMThttp://www.tkk7.com/ocean07000814/articles/342428.htmlhttp://www.tkk7.com/ocean07000814/comments/342428.htmlhttp://www.tkk7.com/ocean07000814/articles/342428.html#Feedback0http://www.tkk7.com/ocean07000814/comments/commentRss/342428.htmlhttp://www.tkk7.com/ocean07000814/services/trackbacks/342428.html CREATE MATERIALIZED VIEW mv_test_pk
  --如果可以快速刷新则q行快速刷斎ͼ否则完全hrefresh force on demand 
 REFRESH FAST on demand
  start with to_date('24-11-2008 18:00:10', 'dd-mm-yyyy hh24:mi:ss') --W一ơ刷新时?br />   next TRUNC(SYSDATE+1)+18/24 --h旉间隔
     AS select * from t_test;

也可以手动刷新物化视图:dbms_mview('mv_emp_pk');



]]>
ORA-27046: file size is not a multiple of logical block sizehttp://www.tkk7.com/ocean07000814/articles/332397.html非洲白?/dc:creator>非洲白?/author>Sat, 18 Sep 2010 12:16:00 GMThttp://www.tkk7.com/ocean07000814/articles/332397.htmlhttp://www.tkk7.com/ocean07000814/comments/332397.htmlhttp://www.tkk7.com/ocean07000814/articles/332397.html#Feedback0http://www.tkk7.com/ocean07000814/comments/commentRss/332397.htmlhttp://www.tkk7.com/ocean07000814/services/trackbacks/332397.html刚改了oracle10g里面的SPFILE***.ORA文gQ数据库pv不来了,抱错ORA-27046: file size is not a multiple of logical block size 。原因是动态服务器参数文gQSPFILEQ是一个二q制文gQ是不可以手工修改的Q如果手工改了,该文件就成ؓ了无效文件?/p>

此时可以通过以下Ҏ(gu)解决Q?/p>

1。将SPFILE中的参数拯到init***.ora文g?/p>

2。删除DATABASE目录下的SPFILE***.ORA文g?/p>

3。启动数据库 Q现在应该可以成功启动)

Q。SQL> create spfile from pfile 生成QIQテQL

使用startup命o启动数据库,Q?/span>Oralce会按照以下序在缺省目录中(9i,10i在oracle_home/database目录下)搜烦参数文gQ(Q)spfile***.ora文g Q2Q如果没有spfile***.ora文gqspfile.ora文gQ3Q?如果没有spfile.ora文gqinit***.oraQ4Q如果没有init***.ora文gq pfile.ora

所以上面我们采取的解决Ҏ(gu)是将破坏的SQuQLQ中的参数复制到init***.ora中,然后删除QIQテQI文gQ这样启动时׃用init***.ora文g启动Q然后用create spfile from pfile 命o生成QIQテQL

以后如果要修改SQuQLQ中的参数绝对不能在手工修改QIQテQI文g了,用下面命令:alter system set parameter=Value scope=spfile|both|memory 例如Q?span style="color: #333333; font-size: 9pt">alter system set db_cache_size=24M scope=both;来修?/span>



]]>
Oracle 重要文gpȝ解释http://www.tkk7.com/ocean07000814/articles/332394.html非洲白?/dc:creator>非洲白?/author>Sat, 18 Sep 2010 11:33:00 GMThttp://www.tkk7.com/ocean07000814/articles/332394.htmlhttp://www.tkk7.com/ocean07000814/comments/332394.htmlhttp://www.tkk7.com/ocean07000814/articles/332394.html#Feedback0http://www.tkk7.com/ocean07000814/comments/commentRss/332394.htmlhttp://www.tkk7.com/ocean07000814/services/trackbacks/332394.html

Oracle 中要了解的文件实在太多了Q一不小心就被弄晕了_下面归类下:

版本QOracle Database 10g Enterprise Edition Release 10.2.0.1.0  

一般来ԌOracle文g分以下几个类型:

数据文gQ      真实数据
重做日志文gQ    联机日志、归日?
控制文gQ      包含物理文g到数据字怸的逻辑表空间之间的映射
初始化参数文Ӟ   控制内存
警告和追t日志文Ӟ
备䆾文gQ?

C:\oracle\product\10.2.0\db_3\srvm\admin\init.ora   --初始化参数文?
C:\oracle\product\10.2.0\admin\orcl\bdump\alert_orcl.LOG       --警告日志文g(报警文g包括了数据库日常操作的信息,它存攑֜由BACKGROUND_DUMP_DEST参数所定义的目录下。该文g得有数据库管理员来管理。作Z合格的DBA应该每天都要查看报警文g以获取数据库的诊断或出错信息?报警文g中主要记录了QA数据库启动和关闭的时间。B所有非默认初始化参数。C LGWR正在写的日志序列?D 日志切换信息 E 所执行的ALTER语句 F 创徏表空间和q原D늭)


C:\oracle\product\10.2.0\admin\orcl\udump\orcl_ora_2828.TRC 用户q踪文g

C:\oracle\product\10.2.0\oradata\orcl\SYSTEM01.DBF         --表空间数据文?
C:\oracle\product\10.2.0\oradata\orcl\SYSAUX01.DBF
C:\oracle\product\10.2.0\oradata\orcl\USERS01.DBF  
C:\oracle\product\10.2.0\oradata\orcl\TEMP01.DBF
C:\oracle\product\10.2.0\oradata\orcl\UNDOTBS01.DBF

C:\oracle\product\10.2.0\oradata\orcl\CONTROL01.CTL         --控制文g
C:\oracle\product\10.2.0\oradata\orcl\CONTROL02.CTL
C:\oracle\product\10.2.0\oradata\orcl\CONTROL03.CTL

C:\oracle\product\10.2.0\oradata\orcl\REDO01.LOG          --联机日志文g
C:\oracle\product\10.2.0\oradata\orcl\REDO02.LOG
C:\oracle\product\10.2.0\oradata\orcl\REDO03.LOG

C:\oracle\ora92\ldap\odi\archive\ORADB2T001S01100.ARC --归日志文g
...
C:\oracle\ora92\ldap\odi\archive\ORADB2T001S01199.ARC

  
C:\oracle\product\10.2.0\db_3\database\initorcl.ora     --启动参数文g
C:\oracle\product\10.2.0\db_3\database\oradim.log       --SVRMGRL理器出错日?

C:\oracle\product\10.2.0\db_3\NETWORK\log\listener.log    --监听器日志文?
C:\oracle\product\10.2.0\db_3\NETWORK\log\sqlnet.log     --Sql*Net 日志文g
C:\oracle\product\10.2.0\db_3\NETWORK\ADMIN\tnsnames.ora   --TNS q接文gQ数据库别名Q?/font>
C:\oracle\product\10.2.0\db_3\NETWORK\ADMIN\sqlnet.ora    --Sql*Net 环境文g
C:\oracle\product\10.2.0\db_3\NETWORK\ADMIN\listener.ora   --监听器参数文?

C:\oracle\product\10.2.0\db_3\sqlplus\admin\glogin.sql    --Sql*Plusd自动执行脚本
C:\oracle\product\10.2.0\db_3\sqlplus\bin\sqlplus.ini    --Sql*Plus环境初始化文?



C:\oracle\product\10.2.0\db_3\RDBMS\ADMIN\standard.sql    --建立数据库基本结构的?
C:\oracle\product\10.2.0\db_3\RDBMS\ADMIN\catalog.sql     --建立数据字典视图脚本Q以SYS、INTERNALq接
C:\oracle\product\10.2.0\db_3\RDBMS\ADMIN\catexp.sql     --建立EXP/IMP用数据字典视?
C:\oracle\product\10.2.0\db_3\RDBMS\ADMIN\catexp7.sql     --使v7版本的EXP文g可以导入到v8?
C:\oracle\product\10.2.0\db_3\RDBMS\ADMIN\catdbsyn.sql    --建立DBAU有数据字典视图
C:\oracle\product\10.2.0\db_3\RDBMS\ADMIN\cataudit.sql    --建立审计用数据字典视?
C:\oracle\product\10.2.0\db_3\RDBMS\ADMIN\catsnap.sql     --建立快照数据字典视图Q以SYS、INTERNALq接
C:\oracle\product\10.2.0\db_3\RDBMS\ADMIN\SCOTT.SQL      --生成SCOTT用户及其用户数据

C:\oracle\ora92\sqlplus\admin\pupbld.sql         --新徏一个数据库之后需要执行的脚本



]]>
oracle EM中的Lw䆾证明http://www.tkk7.com/ocean07000814/articles/331850.html非洲白?/dc:creator>非洲白?/author>Sun, 12 Sep 2010 14:01:00 GMThttp://www.tkk7.com/ocean07000814/articles/331850.htmlhttp://www.tkk7.com/ocean07000814/comments/331850.htmlhttp://www.tkk7.com/ocean07000814/articles/331850.html#Feedback0http://www.tkk7.com/ocean07000814/comments/commentRss/331850.htmlhttp://www.tkk7.com/ocean07000814/services/trackbacks/331850.html 

oracle oem中的Lw䆾证明?0g的web database control中,q行一些操作需要进行主n份证?比如启动、关闭数据库Q进行数据备份、数据的导出导入{等一些操作。这样对于数据库的安全增Z一定的保证。如果我们有q行适当的配|,可以W一ơ会遇到一些错误:比如 RemoteOperationException: ERROR: Wrong password for user。所以此时我们需要进行简单的配置Q?/p>

1、从开始(startQ进入设|——控刉李쀔—管理工?扑ֈ本地安全{略

2、打开本地安全{略,扑ֈ本地{略Qlocal policiesQ?/p>

3、打开其中的用h限分配(user rights assignmentQ?/p>

4、在双的列表中扑ֈ“以批量Q务登?#8221;Qlog on as a batch jobQ?/p>

5、选中Q点d键,选择属性,数据库安装的所在操作系l用Pd其中卛_
6、然后应用、确定?/p>



]]>
Q{Q网l断掉,不能启动DBConsole服务的解冻I发生特定错误Q?/title><link>http://www.tkk7.com/ocean07000814/articles/331748.html</link><dc:creator>非洲白?/dc:creator><author>非洲白?/author><pubDate>Sat, 11 Sep 2010 08:27:00 GMT</pubDate><guid>http://www.tkk7.com/ocean07000814/articles/331748.html</guid><wfw:comment>http://www.tkk7.com/ocean07000814/comments/331748.html</wfw:comment><comments>http://www.tkk7.com/ocean07000814/articles/331748.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/ocean07000814/comments/commentRss/331748.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/ocean07000814/services/trackbacks/331748.html</trackback:ping><description><![CDATA[<p>|络断掉Q不能启动DBConsole服务的解册个问题有不少刚刚接触的Oracle 10g的XDJM都遇到过Q我在笔记本上也遇到q,本来DBConsole是可以用的,但是一旦笔记本是用无U网卡连|的Q所以有时候出ȝ时候没有接上wifi的话Q也会出现同L状况?</p> <p>错误状况Q?<br /> Windowq_ <br /> 以前的DBConsole是可以启动的Q但是拔掉网l启动OracleDBConsoleXXX服务Q服务启动不了?</p> <p>错误排查: <br /> 先设|window环境变量 ORACLE_SID=数据库SID <br /> 打开cmd <br /> 输入 emctl start dbconsole <br /> 会有错误信息提C,如果没有讄ORACLE_SID 则提C?<br /> Environment variable ORACLE_SID not defined. Please define it. </p> <p>如果已经讄了ORACLE_SID 则错误提CZؓ <br /> oc4j configration issue.D:\oracle\product\10.1.0\db_1\oc4j\j2ee\OC4J_DBConsole_localhost_java not found. <br /> 其中D:\oracle\product\10.1.0\db_1Z自己机器中ORacle10g的home目录 </p> <p>q个信息非常的重要,也是服务起不来的Ҏ(gu)原因 <br /> DBConsole是一个java的web applicationQ在建立dbconsole的时候,我们会根据机器以及Oracle的信息创建reposQ这个repos是存放 DBConsole的配|信息的仓库Q由于机器断|,会把机器的名字映ؓlocalhostQ而徏库的时候是默认用的是机器名Q所以这时候两个目录不匚w了,DBConsole找不到配|仓库的目录也就出错了?</p> <p>解决Ҏ(gu)Q?<br /> 解决Ҏ(gu)有两U,一U是比较正式?<br /> 通过emca重新建立repos <br /> 命o如下 <br /> emca -config dbcontrol db -repos recreate </p> <p>Ҏ(gu)二是自己实验出来的,q不是一个正式的Ҏ(gu)Q但是比上一U方法简单,易于操作?<br /> 信息提示里找不到一个目录D:\oracle\product\10.1.0\db_1\oc4j\j2ee \OC4J_DBConsole_localhost_javaQ?到这个信息提C的上一层目录里一看,可以看到有个cM的目录,形如OC4J_DBConsole_janes_javaQ这里janes是我的机器名Q把q个目录copy到当前目录下Q改成信息提C里没有扑ֈ的目录名Q比如我q里改成D:\oracle\product\10.1.0\db_1\oc4j\j2ee \OC4J_DBConsole_localhost_java </p> <p>同时来到D:\oracle\product\10.1.0\db_1目录下,可以扑ֈ一个名字Ş如janes_ORCL的目录, <br /> 注意janes_ORCL q里的janes是我的机器名QORCL是我q里ORacle的SIDQ你可以Ҏ(gu)你的具体情况Q来扑ֈcM的目? 同样在当前copy到当前目录,q改名ؓlocalhost_ORCL. </p> <p>q有W三Ҏ(gu)Q不q没有试q?<br /> 有出现这样问题的帮着试试 set ORACLE_HOSTNAME=localhost </p> <p>然后通过emctl start dbconsole或者服务里的ORacleDBConsoleXXXX的服务就可以启动了?</p> <p>本文来自CSDN博客Q{载请标明出处Qhttp://blog.csdn.net/inthirties/archive/2009/08/20/4464583.aspx</p> <img src ="http://www.tkk7.com/ocean07000814/aggbug/331748.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/ocean07000814/" target="_blank">非洲白?/a> 2010-09-11 16:27 <a href="http://www.tkk7.com/ocean07000814/articles/331748.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle数据导入导出http://www.tkk7.com/ocean07000814/articles/328422.html非洲白?/dc:creator>非洲白?/author>Tue, 10 Aug 2010 07:50:00 GMThttp://www.tkk7.com/ocean07000814/articles/328422.htmlhttp://www.tkk7.com/ocean07000814/comments/328422.htmlhttp://www.tkk7.com/ocean07000814/articles/328422.html#Feedback0http://www.tkk7.com/ocean07000814/comments/commentRss/328422.htmlhttp://www.tkk7.com/ocean07000814/services/trackbacks/328422.htmlOracle数据导入导出imp/expq当于oracle数据q原与备份。exp命o可以把数据从q程数据库服 务器导出到本地的dmp文gQimp命o可以把dmp文g从本地导入到q处的数据库服务器中。利用这个功能可以构Z个相同的数据库,一个用来测试,一? 用来正式使用?

    执行环境Q可以在SQLPLUS.EXE或者DOSQ命令行Q中执行QDOS中可以执行时׃ 在oracle 8i ?nbsp; 安装目录\ora81\BIN被设|ؓ全局路径Q该目录下有EXP.EXE与IMP.EXE文g被用来执行导入导出。oracle用java~? 写,SQLPLUS.EXE、EXP.EXE、IMP.EXEq两个文件有可能是被包装后的cL件?br />    SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类Q完成导入导出功能。下面介l的是导入导出的实例?/font>


数据导出Q?br />  1 数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp?br />   exp system/manager@TEST file=d:\daochu.dmp full=y
 2 数据库中system用户与sys用户的表导出
  exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
 3 数据库中的表inner_notify、notify_staff_relat导出
  exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmp tables=(inner_notify,notify_staff_relat)
 4 数据库中的表table1中的字段filed1?00"打头的数据导?br />   exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\" 上面是常用的导出Q对于压~,既用winzip把dmp文g可以很好的压~?br />  也可以在上面命o后面 加上 compress=y 来实现?/font>

数据的导入:
 1 D:\daochu.dmp 中的数据导入 TEST数据库中?br />   imp system/manager@TEST  file=d:\daochu.dmp
  imp aichannel/aichannel@HUST full=y  file=file= d:\data\newsmgnt.dmp ignore=y
 上面可能有点问题Q因为有的表已经存在Q然后它?yu)报错,对该表就不进行导入?br />  在后面加?ignore=y 可以了?br />  2 d:\daochu.dmp中的表table1 导入
  imp system/manager@TEST  file=d:\daochu.dmp  tables=(table1)
 基本上上面的导入导出够用了。不情况要先是表d删除Q然后导入?注意Q?br />  操作者要有够的权限Q权限不够它会提C?br />  数据库时可以q上的。可以用tnsping TEST 来获得数据库TEST能否q上?/font>


附录一Q?br />  l用户增加导入数据权限的操作
 W一,启动sql*puls
 W二Q以system/manager登陆
 W三Qcreate user 用户?IDENTIFIED BY 密码Q如果已l创用户Q这步可以省略)
 W四QGRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
  DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
  DBA,CONNECT,RESOURCE,CREATE SESSION  TO 用户名字
 W五, q行-cmd-q入dmp文g所在的目录,
  imp userid=system/manager full=y file=*.dmp
  或?imp userid=system/manager full=y file=filename.dmp
 执行CZ:
 F:\Work\Oracle_Data\backup>imp userid=test/test full=y file=inner_notify.dmp
 屏幕昄
 Import: Release 8.1.7.0.0 - Production on 星期?2?16 16:50:05 2006
 (c) Copyright 2000 Oracle Corporation.  All rights reserved.
 q接? Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
 With the Partitioning option
 JServer Release 8.1.7.0.0 - Production
 l由常规路径导出由EXPORT:V08.01.07创徏的文?br />  已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导?br />  导出服务器用UTF8 NCHAR 字符?(可能的ncharset转换)
 . 正在AICHANNEL的对象导入到 AICHANNEL
 . . 正在导入?nbsp; "INNER_NOTIFY"  4行被导入
 准备启用U束条g...
 成功l止导入Q但出现警告?/font>

附录二:
 Oracle 不允许直接改变表的拥有? 利用Export/Import可以辑ֈq一目的.
 先徏立import9.par,
 然后Q用时命o如下Qimp parfile=/filepath/import9.par
 ?import9.par 内容如下Q?br />  FROMUSER=TGPMS
 TOUSER=TGPMS2Q注Q把表的拥有者由FROMUSER改ؓTOUSERQFROMUSER和TOUSER的用户可以不同)
 ROWS=Y
 INDEXES=Y
 GRANTS=Y
 CONSTRAINTS=Y
 BUFFER=409600
 file==/backup/ctgpc_20030623.dmp
 log==/backup/import_20030623.log



]]>
Oracle 查看锁,解锁http://www.tkk7.com/ocean07000814/articles/316942.html非洲白?/dc:creator>非洲白?/author>Tue, 30 Mar 2010 07:49:00 GMThttp://www.tkk7.com/ocean07000814/articles/316942.htmlhttp://www.tkk7.com/ocean07000814/comments/316942.htmlhttp://www.tkk7.com/ocean07000814/articles/316942.html#Feedback0http://www.tkk7.com/ocean07000814/comments/commentRss/316942.htmlhttp://www.tkk7.com/ocean07000814/services/trackbacks/316942.html select a.object_name||'|'||b.session_id||'|'||c.serial#||'|'||c.program||'|'||c.username||'|'||c.command||'|'||c.machine||'|'||
c.lockwait from all_objects a,v$locked_object b,v$session c where a.object_id=b.object_id and c.sid=b.session_id;

[ 解锁 ]
alter system kill session 'session_id,serial'


]]>
case when 用法http://www.tkk7.com/ocean07000814/articles/311086.html非洲白?/dc:creator>非洲白?/author>Thu, 28 Jan 2010 08:14:00 GMThttp://www.tkk7.com/ocean07000814/articles/311086.htmlhttp://www.tkk7.com/ocean07000814/comments/311086.htmlhttp://www.tkk7.com/ocean07000814/articles/311086.html#Feedback0http://www.tkk7.com/ocean07000814/comments/commentRss/311086.htmlhttp://www.tkk7.com/ocean07000814/services/trackbacks/311086.html NVL(sum(case when n.type='OK' then n.nums else 0 end),0) as nums
from XX n

l果Q统计得到type=OK的所有记录的nums?br />


]]>
sql语句的执行顺?/title><link>http://www.tkk7.com/ocean07000814/articles/243288.html</link><dc:creator>非洲白?/dc:creator><author>非洲白?/author><pubDate>Fri, 28 Nov 2008 08:58:00 GMT</pubDate><guid>http://www.tkk7.com/ocean07000814/articles/243288.html</guid><wfw:comment>http://www.tkk7.com/ocean07000814/comments/243288.html</wfw:comment><comments>http://www.tkk7.com/ocean07000814/articles/243288.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/ocean07000814/comments/commentRss/243288.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/ocean07000814/services/trackbacks/243288.html</trackback:ping><description><![CDATA[一、sql语句的执行步骤:<br />  1Q语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义?<br /> 2Q?语义分析Q检查语句中涉及的所有数据库对象是否存在Q且用户有相应的权限?<br /> 3Q视图{换,涉及视囄查询语句转换为相应的对基表查询语句?<br /> 4Q表辑ּ转换Q?复杂的 SQL 表达式{换ؓ较简单的{效q接表达式?br />  5Q选择优化器,不同的优化器一般生不同的“执行计划” <br /> 6Q选择q接方式Q?ORACLE 有三U连接方式,对多表连?ORACLE 可选择适当的连接方式?<br /> 7Q选择q接序Q?对多表连?ORACLE 选择哪一对表先连接,选择q两表中哪个表做为源数据表?<br /> 8Q选择数据的搜索\径,Ҏ(gu)以上条g选择合适的数据搜烦路径Q如是选用全表搜烦q是利用索引或是其他的方式?<br /> 9Q运?#8220;执行计划” <br /> 二、oracle ׃n原理Q?br />         ORACLE执行过的SQL语句存放在内存的׃n?shared buffer pool)中,可以被所有的数据库用户共? 当你执行一个SQL语句(有时被称Z个游??如果它和之前的执行过的语句完全相? ORACLEp很快获得已经被解析的语句以及最好的 执行路径. q个功能大大地提高了SQL的执行性能q节省了内存的?<br /> 三、oracle 语句提高查询效率的方法:1Q?where column in(select * from ... where ...); 2Q?.. where exists (select 'X' from ...where ...); W二U格式要q比W一U格式的效率高。在Oracle中可以几乎将所有的IN操作W子查询改写Z用EXISTS的子查询 使用EXISTQOraclepȝ会首先检查主查询Q然后运行子查询直到它找到第一个匹配项Q这p省了旉 Oraclepȝ在执行IN子查询时Q首先执行子查询Qƈ获得的l果列表存放在在一个加了烦引的临时表中 避免使用having字句 避免使用HAVING子句, HAVING 只会在检索出所有记录之后才对结果集q行qo. q个处理需要排?总计{操? 如果能通过WHERE子句限制记录的数?那就能减这斚w的开销<br /> <p>SQL Select语句完整的执行顺序: </p> <p>1、from子句l装来自不同数据源的数据Q?br />  2、where子句Z指定的条件对记录行进行筛选; <br /> 3、group by子句数据划分ؓ多个分组Q?<br /> 4、用聚集函数进行计;<br /> 5、用having子句{选分l; <br /> 6、计所有的表达式; <br /> 7、用order by对结果集q行排序?/p> <p>----------------------------------------------------------------------------------------------<br /> </p> <p>WHERE子句解析序分析Q?/p> <p>׃SQL优化h比较复杂,q且q会受环境限?在开发过E中,写SQL必须必须要遵循以下几点的原则Q? <br /> <br /> 1.ORACLE采用自下而上的顺序解析WHERE子句,Ҏ(gu)q个原理,表之间的q接必须写在其他WHERE条g之前, 那些可以qo掉最大数量记录的条g必须写在WHERE子句的末? <br /> <br /> 例如: <br /> <br /> (低效) <br /> <br /> SELECT … FROM EMP E WHERE SAL > 50000 AND JOB = ‘MANAGER’ AND 25 < (SELECT COUNT(*) FROM EMP WHERE MGR=E.EMPNO); <br /> <br /> (高效) <br /> <br /> SELECT … FROM EMP E WHERE 25 < (SELECT COUNT(*) FROM EMP WHERE MGR=E.EMPNO) AND SAL > 50000 AND JOB = ‘MANAGER’; <br /> <br /> 2.SELECT子句中避免?#8217;*’ <br /> <br /> 当在SELECT子句中列出所有的COLUMN?使用动态SQL列引?‘*’ 是一个方便的Ҏ(gu).可是,q是一个非怽效的Ҏ(gu). 实际?ORACLE在解析的q程? 会将’*’ 依次转换成所有的列名, q个工作是通过查询数据字典完成? q意味着耗费更多的时? <br /> <br /> 3.使用表的别名(Alias) <br /> <br /> 当在SQL语句中连接多个表? 请用表的别名ƈ把别名前~于每个Column?q样一?可以减解析的旉q减那些由Column歧义引v的语法错? <br /> <br /> 注:Column歧义指的是由于SQL中不同的表具有相同的Column?当SQL语句中出现这个Column?SQL解析器无法判断这个Column的归属?/p> <img src ="http://www.tkk7.com/ocean07000814/aggbug/243288.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/ocean07000814/" target="_blank">非洲白?/a> 2008-11-28 16:58 <a href="http://www.tkk7.com/ocean07000814/articles/243288.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>详细介绍oracle的RBO/CBO优化?/title><link>http://www.tkk7.com/ocean07000814/articles/90529.html</link><dc:creator>非洲白?/dc:creator><author>非洲白?/author><pubDate>Thu, 28 Dec 2006 08:56:00 GMT</pubDate><guid>http://www.tkk7.com/ocean07000814/articles/90529.html</guid><wfw:comment>http://www.tkk7.com/ocean07000814/comments/90529.html</wfw:comment><comments>http://www.tkk7.com/ocean07000814/articles/90529.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/ocean07000814/comments/commentRss/90529.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/ocean07000814/services/trackbacks/90529.html</trackback:ping><description><![CDATA[Oracle的优化器有两U优化方?卛_于规则的优化方式(Rule-Based OptimizationQ简UCؓRBO)和基于代L优化方式(Cost-Based OptimizationQ简UCؓCBO)Q在Oracle8及以后的版本,Oracle强列推荐用CBO的方? <p></p><p>    RBO方式Q优化器在分析SQL语句?所遵@的是Oracle内部预定的一些规则。比如我们常见的Q当一个where子句中的一列有索引时去走烦引?/p><p>    CBO方式Q它是看语句的代?Cost),q里的代价主要指Cpu和内存。优化器在判断是否用q种方式?主要参照的是表及索引的统计信息。统计信息给的大、有行、每行的长度{信息。这些统计信息v初在库内是没有的Q是做analyze后才出现的,很多的时侯过期统计信息会令优化器做出一个错误的执行计划,因些应及时更新这些信息?/p><p>    注意Q走索引不一定就是优的,比如一个表只有两行数据Q一ơIO可以完成全表的?而此时走索引时则需要两ơIO,q时全表扫描(full table scan)是最?/p><p>    优化模式包括Rule、Choose、First rows、All rows四种方式Q?/p><p>    RuleQ基于规则的方式?/p><p>    ChoolseQ默认的情况下Oracle用的便是q种方式。指的是当一个表或或索引有统计信息,则走CBO的方式,如果表或索引没统计信息,表又不是特别的小Q而且相应的列有烦引时Q那么就走烦引,走RBO的方式?/p><p>    First RowsQ它与Choose方式是类似的Q所不同的是当一个表有统计信息时Q它?yu)是以最快的方式q回查询的最先的几行Q从M上减了响应旉?/p><p>    All Rows:也就是我们所说的Cost的方式,当一个表有统计信息时Q它?yu)以最快的方式q回表的所有的行,从M上提高查询的吞吐量。没有统计信息则走RBO的方式?/p><p>    讑֮选用哪种优化模式Q?/p><p>    A、InstanceU别我们可以通过在initSID.ora文g中设定OPTIMIZER_MODE=RULE/CHOOSE/FIRST_ROWS/ALL_ROWS如果没设定OPTIMIZER_MODE参数则默认用的是Choose方式?br />    B、SessionsU别通过ALTER SESSION SET OPTIMIZER_MODE=RULE/CHOOSE/FIRST_ROWS/ALL_ROWS来设定?br />    C、语句别用HintQ?*+ ... */Q来讑֮</p><p>    Z么表的某个字D|明有索引Q但执行计划却不走烦引?</p><p>    1、优化模式是all_rows的方式?br />    2、表作过analyzeQ有l计信息<br />    3、表很小Q上文提到过的,Oracle的优化器认ؓ不值得走烦引?br /><br /></p><img src ="http://www.tkk7.com/ocean07000814/aggbug/90529.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/ocean07000814/" target="_blank">非洲白?/a> 2006-12-28 16:56 <a href="http://www.tkk7.com/ocean07000814/articles/90529.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORACLE常用ȝ问题1000?/title><link>http://www.tkk7.com/ocean07000814/articles/71016.html</link><dc:creator>非洲白?/dc:creator><author>非洲白?/author><pubDate>Thu, 21 Sep 2006 02:33:00 GMT</pubDate><guid>http://www.tkk7.com/ocean07000814/articles/71016.html</guid><wfw:comment>http://www.tkk7.com/ocean07000814/comments/71016.html</wfw:comment><comments>http://www.tkk7.com/ocean07000814/articles/71016.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/ocean07000814/comments/commentRss/71016.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/ocean07000814/services/trackbacks/71016.html</trackback:ping><description><![CDATA[ <p> <span id="tdbphzn" class="unnamed3">                                             <font color="#ff0000" size="4"><strong>ORACLE常用ȝ问题1000?/strong></font></span> </p> <p>1. Oracle安装完成后的初始口o? <br /> internal/oracle <br />  sys/change_on_install <br />  system/manager <br />  scott/tiger <br />  sysman/oem_temp </p> <p>2. ORACLE9IAS WEB CACHE的初始默认用户和密码Q?<br />administrator/administrator </p> <p>3. oracle 8.0.5怎么创徏数据? <br />用orainst。如果有motif界面Q可以用orainst /m </p> <p>4. oracle 8.1.7怎么创徏数据? <br />dbassist </p> <p>5. oracle 9i 怎么创徏数据? <br />dbca </p> <p>6. oracle中的裸设备指的是什? <br />裸设备就是绕q文件系l直接访问的储存I间 </p> <p>7. oracle如何区分 64-bit/32bit 版本Q?<br />$ sqlplus '/ AS SYSDBA' <br />SQL*PlusQ?Release 9.0.1.0.0 - Production on Mon Jul 14 17Q?1Q?9 2003 <br />(c) Copyright 2001 Oracle Corporation. All rights reserved?<br />Connected toQ?<br />Oracle9i Enterprise Edition Release 9.0.1.0.0 - Production <br />With the Partitioning option <br />JServer Release 9.0.1.0.0 - Production <br />SQL> select * from v$versionQ?<br />BANNER <br />---------------------------------------------------------------- <br />Oracle9i Enterprise Edition Release 9.0.1.0.0 - Production <br />PL/SQL Release 9.0.1.0.0 - Production <br />CORE 9.0.1.0.0 Production <br />TNS for SolarisQ?Version 9.0.1.0.0 - Production <br />NLSRTL Version 9.0.1.0.0 - Production <br />SQL> </p> <p>8. SVRMGR什么意思? <br />svrmgrlQServer Manager 9i下没有,已经改ؓ用SQLPLUS?<br />sqlplus /nolog 变ؓ归档日志型的 </p> <p>9. 请问如何分L某个用户是从哪台机器登陆ORACLE? <br />SELECT machine Qterminal FROM V$SESSIONQ?</p> <p>10. 用什么语句查询字D呢Q?<br />desc table_name 可以查询表的l构 <br />select field_nameQ?.. from ... 可以查询字段的?<br />select * from all_tables where table_name like '%' <br />select * from all_tab_columns where table_name='??' </p> <p>11. 怎样得到触发器、过E、函数的创徏脚本Q?<br />desc user_source <br />user_triggers </p> <p>12. 怎样计算一个表占用的空间的大小Q?<br />select ownerQtable_nameQNUM_ROWSQBLOCKS*AAA/1024/1024 "Size M"QEMPTY_BLOCKSQLAST_ANALYZED <br />from dba_tables <br />where table_name='XXX'Q?<br />HereQ?AAA is the value of db_block_sizeQ?<br />XXX is the table name you want to check <br />13. 如何查看最大会话数Q?<br />SELECT * FROM V$PARAMETER WHERE NAME LIKE 'proc%'Q?<br />SQL> <br />SQL> show parameter processes <br />NAME TYPE VALUE <br />------------------------------------ ------- ------------------------------ <br />aq_tm_processes integer 1 <br />db_writer_processes integer 1 <br />job_queue_processes integer 4 <br />log_archive_max_processes integer 1 <br />processes integer 200 <br />q里?00个用戗?<br />Select * from v$licenseQ?<br />其中sessions_highwaterU录曄到达的最大会话数 <br />14. 如何查看pȝ被锁的事务时_ <br />select * from v$locked_object Q?<br />15. 如何以archivelog的方式运行oracleQ?<br />init.ora <br />log_archive_start = true <br />RESTART DATABASE <br />16. 怎么获取有哪些用户在使用数据库? <br />select username from v$sessionQ?<br />17. 数据表中的字D|大数是多? <br />表或视图中的最大列Cؓ 1000 <br />18. 怎样查得数据库的SID ? <br />select name from v$databaseQ也可以直接查看 init.ora文g <br />19. 如何在Oracle服务器上通过SQLPLUS查看本机IP地址 ? <br />select sys_context('userenv'Q?ip_address') from dualQ?<br />如果是登陆本机数据库Q只能返?27.0.0.1 <br />20. UNIX 下怎么调整数据库的旉Q?<br />su -root <br />date -u 08010000 <br />21. 在ORACLE TABLE中如何抓取MEMOcd栏ؓI的资料记录? <br />select remark from oms_flowrec where trim(' ' from remark) is not null Q?<br />22. 如何用BBB表的资料L新AAA表的数据(有关联的字段) <br />UPDATE AAA SET BNS_SNM=(SELECT BNS_SNM FROM BBB WHERE AAA.DPT_NO=BBB.DPT_NO) WHERE BBB.DPT_NO IS </p> <p>NOT NULLQ?<br />23. P4计算机安装方?<br />SYMCJIT.DLL改ؓSYSMCJIT.OLD <br />24. 如何查询SERVER是不是OPS? <br />SELECT * FROM V$OPTIONQ?<br />如果PARALLEL SERVER=TRUE则有OPS?<br />25. 如何查询每个用户的权? <br />SELECT * FROM DBA_SYS_PRIVSQ?<br />26. 如何表Ud表空? <br />ALTER TABLE TABLE_NAME MOVE TABLESPACE_NAMEQ?<br />27. 如何烦引移动表I间? <br />ALTER INDEX INDEX_NAME REBUILD TABLESPACE TABLESPACE_NAMEQ?<br />28. 在LINUXQUNIX下如何启动DBA STUDIO? <br />OEMAPP DBASTUDIO <br />29. 查询锁的状况的对象有? <br />V$LOCKQ?V$LOCKED_OBJECTQ?V$SESSIONQ?V$SQLAREAQ?V$PROCESS Q?<br />查询锁的表的Ҏ(gu)Q?<br />SELECT S.SID SESSION_IDQS.USERNAMEQDECODE(LMODEQ?Q?None'Q?Q?Null'Q?Q?Row-S (SS)'Q?Q?/p> <p>'Row-X (SX)'Q?Q?Share'Q?Q?S/Row-X (SSX)'Q?Q?Exclusive'QTO_CHAR(LMODE)) MODE_HELDQ?/p> <p>DECODE(REQUESTQ?Q?None'Q?Q?Null'Q?Q?Row-S (SS)'Q?Q?Row-X (SX)'Q?Q?Share'Q?Q?S/Row-X </p> <p>(SSX)'Q?Q?Exclusive'QTO_CHAR(REQUEST)) MODE_REQUESTEDQO.OWNER||'.'||O.OBJECT_NAME||' </p> <p>('||O.OBJECT_TYPE||')'QS.TYPE LOCK_TYPEQL.ID1 LOCK_ID1QL.ID2 LOCK_ID2 FROM V$LOCK LQ?/p> <p>SYS.DBA_OBJECTS OQV$SESSION S WHERE L.SID = S.SID AND L.ID1 = O.OBJECT_ID Q?<br />30. 如何解锁? <br />ALTER SYSTEM KILL SESSION ‘SIDQSERIR#’; <br />31. SQLPLUS下如何修改编辑器? <br />DEFINE _EDITOR="<~辑器的完整路经>" -- 必须加上双引h定义新的~辑器,也可以把q个写在</p> <p>$ORACLE_HOME/sqlplus/admin/glogin.sql里面使它怹有效?<br />32. ORACLE产生随机数的函数? <br />DBMS_RANDOM.RANDOM <br />33. LINUX下查询磁盘竞争状况命? <br />sar -d <br />33. LINUX下查询CPU竞争状况命o? <br />sar -r <br />34. 查询当前用户对象? <br />SELECT * FROM USER_OBJECTSQ?<br />SELECT * FROM DBA_SEGMENTSQ?<br />35. 如何获取错误信息? <br />SELECT * FROM USER_ERRORSQ?<br />36. 如何获取链接状况? <br />SELECT * FROM DBA_DB_LINKSQ?<br />37. 查看数据库字W状? <br />SELECT * FROM NLS_DATABASE_PARAMETERSQ?<br />SELECT * FROM V$NLS_PARAMETERSQ?<br />38. 查询表空间信? <br />SELECT * FROM DBA_DATA_FILESQ?<br />39. ORACLE的INTERAL用户要口? <br />修改 SQLNET.ORA <br />SQLNET.AUTHENTICATION_SERVICES=(NTS) <br />40. 出现JAVA.EXE的解军_? <br />一般是ORACLEORAHOMEXIHTTPSERVERҎ(gu)手工启动可以的,X?? <br />41. 如何l表、列加注释? <br />SQL>comment on table ?is '表注?Q?<br />注释已创建?<br />SQL>comment on column ??is '列注?Q?<br />注释已创建?<br />SQL> select * from user_tab_comments where comments is not nullQ?<br />42. 如何查看各个表空间占用磁盘情况? <br />SQL> col tablespace format a20 <br />SQL> select <br />b.file_id 文gIDP <br />b.tablespace_name 表空间名Q?<br />b.bytes 字节敎ͼ <br />(b.bytes-sum(nvl(a.bytesQ?))) 已用, <br />sum(nvl(a.bytesQ?)) 剩余I间Q?<br />sum(nvl(a.bytesQ?))/(b.bytes)*100 剩余癑ֈ?<br />from dba_free_space aQdba_data_files b <br />where a.file_id=b.file_id <br />group by b.tablespace_nameQb.file_idQb.bytes <br />order by b.file_id <br />43. 如把ORACLE讄为MTS或专用模式? <br />#dispatchers="(PROTOCOL=TCP) (SERVICE=SIDXD" <br />加上是MTSQ注释就是专用模式,SID是指你的实例名?<br />44. 如何才能得知pȝ当前的SCN?? <br />select max(ktuxescnw * power(2Q?2) + ktuxescnb) from x$ktuxeQ?<br />45. 请问如何在ORACLE中取毫秒? <br />9i之前不支持,9i开始有timestamp?<br />9i可以用select systimestamp from dualQ?<br />46. 如何在字W串里加回RQ?<br />select 'Welcome to visit'||chr(10)||'www.CSDN.NET' from dual Q?<br />47. 中文是如何排序的Q?<br />Oracle9i之前Q中文是按照二进制编码进行排序的?<br />在oracle9i中新增了按照拼音、部首、笔L序功能。设|NLS_SORT| <br />SCHINESE_RADICAL_M 按照部首Q第一序Q、笔划(W二序Q排?<br />SCHINESE_STROKE_M 按照W划Q第一序Q、部首(W二序Q排?<br />SCHINESE_PINYIN_M 按照拼音排序 <br />48. Oracle8i中对象名可以用中文吗Q?<br />可以 <br />49. 如何改变WIN中SQL*Plus启动选项Q?<br />SQL*PLUS自n的选项讄我们可以?ORACLE_HOME/sqlplus/admin/glogin.sql中设|?<br />50. 怎样修改oracel数据库的默认日期? <br />alter session set nls_date_format='yyyymmddhh24miss'Q?<br />或可以在init.ora中加上一?nls_date_format='yyyymmddhh24miss' <br />51. 如何小表放入keep池中? <br />alter table xxx storage(buffer_pool keep)Q?<br />52. 如何查是否安装了某个patch? <br />check that oraInventory <br />53. 如何使select语句使查询结果自动生成序? <br />select rownumQCOL from tableQ?<br />54. 如何知道数据裤中某个表所在的tablespace? <br />select tablespace_name from user_tables where table_name='TEST'Q?<br />select * from user_tables中有个字DTABLESPACE_NAMEQ(oracleQ; <br />select * from dba_segments where …; <br />55. 怎么可以快速做一个和原表一L备䆾? <br />create table new_table as (select * from old_table)Q?<br />55. 怎么在sqlplus下修改procedure? <br />select lineQtrim(text) t from user_source where name =’A?order by lineQ?<br />56. 怎样解除PROCEDURE被意外锁? <br />alter system kill session Q把那个sessionl杀掉,不过你要先查出她的session id <br />或把该过E重新改个名字就可以了?<br />57. SQL Reference是个什么东西? <br />是一本sql的用手册,包括语法、函数等{,Oracle官方|站的文档中心提供下载?<br />58. 如何查看数据库的状? <br />UNIX?<br />ps -ef | grep ora <br />Windows?<br />看服务是否v来;是否可以q上数据?<br />59. 请问如何修改一张表的主? <br />alter table aaa <br />drop constraint aaa_key Q?<br />alter table aaa <br />add constraint aaa_key primary key(a1Qb1) Q?<br />60. 改变数据文g的大? <br />?ALTER DATABASE .... DATAFILE .... Q?<br />手工改变数据文g的大,对于原来?数据文g有没有损実?<br />61. 怎样查看ORACLE中有哪些E序在运行之中? <br />查看v$sessions?<br />62. 怎么可以看到数据库有多少个tablespace? <br />select * from dba_tablespacesQ?<br />63. 如何修改oracle数据库的用户q接敎ͼ <br />修改initSID.oraQ将process加大Q重启数据库?<br />64. 如何查出一条记录的最后更新时? <br />可以用logminer 察看 <br />65. 如何在PL/SQL中读写文Ӟ <br />UTL_FILE包允许用户通过PL/SQLd操作pȝ文g?<br />66. 怎样把?amp;”放入一条记录中Q?<br />insert into a values (translate ('at{&}t'Q?at{}'Q?at'))Q?<br />67. EXP 如何加QUERY参数Q?<br />EXP USER/PASS FILE=A.DMP TABLES(BSEMPMS) <br />QUERY='"WHERE EMP_NO=\'S09394\'\"H?<br />68. 关于oracle8i支持体和J体的字W集问题Q?<br />ZHS16GBK可以支持 <br />69. Data Guard是什么YӞ <br />是Standby的换代?<br />70. 如何创徏SPFILE? <br />SQL> connect / as sysdba <br />SQL> select * from v$versionQ?<br />SQL> create pfile from spfileQ?<br />SQL> CREATE SPFILE FROM PFILE='EQ\ora9i\admin\eygle\pfile\init.ora'Q?<br />文g已创建?<br />SQL> CREATE SPFILE='EQ\ora9i\database\SPFILEEYGLE.ORA' FROM PFILE='EQ?/p> <p>\ora9i\admin\eygle\pfile\init.ora'Q?<br />文g已创建?<br />71. 内核参数的应? <br />shmmax <br />  含义Q这个设|ƈ不决定究竟Oracle数据库或者操作系l用多物理内存,只决定了最多可以用的?/p> <p>存数目。这个设|也不媄响操作系l的内核资源?<br />  讄Ҏ(gu)Q?.5*物理内存 <br />  例子QSet shmsysQshminfo_shmmax=10485760 <br />  shmmin <br />  含义Q共享内存的最大?<br />  讄Ҏ(gu)Q一般都讄成ؓ1?<br />  例子QSet shmsysQshminfo_shmmin=1Q?<br />  shmmni <br />  含义Q系l中׃n内存D늚最大个数?<br />  例子QSet shmsysQshminfo_shmmni=100 <br />  shmseg <br />  含义Q每个用戯E可以用的最多的׃n内存D늚数目?<br />  例子QSet shmsysQshminfo_shmseg=20Q?<br />  semmni <br />  含义Q系l中semaphore identifierer的最大个数?<br />  讄Ҏ(gu)Q把q个变量的D|ؓq个pȝ上的所有Oracle的实例的init.ora中的最大的那个processes?/p> <p>那个值加10?<br />  例子QSet semsysQseminfo_semmni=100 <br />  semmns <br />  含义Q系l中emaphores的最大个数?<br />  讄Ҏ(gu)Q这个值可以通过以下方式计算得到Q各个Oracle实例的initSID.ora里边的processes的值的?/p> <p>和(除去最大的Processes参数Q+最大的那个Processes×2Q?0×Oracle实例的个数?<br />  例子QSet semsysQseminfo_semmns=200 <br />  semmsl <br />  含义Q一个set中semaphore的最大个数?<br />  讄Ҏ(gu)Q设|成?0Q所有Oracle实例的InitSID.ora中最大的Processes的倹{?<br />  例子QSet semsysQseminfo_semmsl=-200 <br />72. 怎样查看哪些用户拥有SYSDBA、SYSOPER权限Q?<br />SQL>conn sys/change_on_install <br />SQL>select * from V_$PWFILE_USERSQ?<br />73. 如何单独备䆾一个或多个表? <br />exp 用户/密码 tables=(?Q…,?) <br />74. 如何单独备䆾一个或多个用户Q?<br />exp system/manager owner=(用户1Q用?Q…,用户n) file=导出文g <br />75. 如何对CLOB字段q行全文索? <br />SELECT * FROM A WHERE dbms_lob.instr(a.aQ?K'Q?Q?)>0Q?<br />76. 如何昄当前q接用户? <br />SHOW USER <br />77. 如何查看数据文g攄的\? <br />col file_name format a50 <br />SQL> select tablespace_nameQfile_idQbytes/1024/1024Qfile_name from dba_data_files order by </p> <p>file_idQ?<br />78. 如何查看现有回滚D及其状? <br />SQL> col segment format a30 <br />SQL> SELECT SEGMENT_NAMEQOWNERQTABLESPACE_NAMEQSEGMENT_IDQFILE_IDQSTATUS FROM </p> <p>DBA_ROLLBACK_SEGS <br />79. 如何改变一个字D初始定义的Check范围Q?<br />SQL> alter table xxx drop constraint constraint_nameQ?<br />之后再创建新U束Q?<br />SQL> alter table xxx add constraint constraint_name check()Q?<br />80. Oracle常用pȝ文g有哪些? <br />通过以下视图昄q些文g信息Qv$databaseQv$datafileQv$logfile v$controlfile v$parameterQ?<br />81. 内连接INNER JOIN? <br />select a.* from bsempms aQbsdptms b where a.dpt_no=b.dpt_noQ?<br />82. 如何外连? <br />select a.* from bsempms aQbsdptms b where a.dpt_no=b.dpt_no(+)Q?<br />select a.* from bsempms aQbsdptms b wherea.dpt_no(+)=b.dpt_noQ?<br />83. 如何执行脚本SQL文g? <br />SQL>@$PATH/filename.sqlQ?<br />84. 如何快速清IZ个大? <br />SQL>truncate table table_nameQ?<br />85. 如何查有多少个数据库实例? <br />SQL>SELECT * FROM V$INSTANCEQ?<br />86. 如何查询数据库有多少? <br />SQL>select * from all_tablesQ?<br />87. 如何试SQL语句执行所用的旉? <br />SQL>set timing onQ?<br />SQL>select * from tablenameQ?<br />88. CHR()的反函数? <br />ASCII() <br />SELECT CHAR(65) FROM DUALQ?<br />SELECT ASCII('A') FROM DUALQ?<br />89. 字符串的q接 <br />SELECT CONCAT(COL1QCOL2) FROM TABLEQ?<br />SELECT COL1||COL2 FROM TABLEQ?<br />90. 怎么把select出来的结果导C个文本文件中Q?<br />SQL>SPOOL CQ\ABCD.TXTQ?<br />SQL>select * from tableQ?<br />SQL >spool offQ?<br />91. 怎样估算SQL执行的I/O?? <br />SQL>SET AUTOTRACE ON Q?<br />SQL>SELECT * FROM TABLEQ?<br />?<br />SQL>SELECT * FROM v$filestatQ可以查看IO?<br />92. 如何在sqlplus下改变字D大? <br />alter table table_name modify (field_name varchar2(100))Q?<br />改大行,改小不行Q除非都是空的) <br />93. 如何查询某天的数? <br />select * from table_name where trunc(日期字段)Qto_date('2003-05-02'Q?yyyy-mm-dd')Q?<br />94. sql 语句如何插入全年日期Q?<br />create table BSYEAR (d date)Q?<br />insert into BSYEAR <br />select to_date('20030101'Q?yyyymmdd')+rownum-1 <br />from all_objects <br />where rownum <= to_char(to_date('20031231'Q?yyyymmdd')Q?ddd')Q?<br />95. 如果修改表名? <br />alter table old_table_name rename to new_table_nameQ?<br />96. 如何取得命o的返回状态| <br />sqlcode=0 <br />97. 如何知道用户拥有的权? <br />SELECT * FROM dba_sys_privs Q?<br />98. 从网上下载的ORACLE9I与市Z卖的标准版有什么区别? <br%></br%></p> <img src ="http://www.tkk7.com/ocean07000814/aggbug/71016.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/ocean07000814/" target="_blank">非洲白?/a> 2006-09-21 10:33 <a href="http://www.tkk7.com/ocean07000814/articles/71016.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORACLE----触发器,存储q程及JOB http://www.tkk7.com/ocean07000814/articles/70827.html非洲白?/dc:creator>非洲白?/author>Wed, 20 Sep 2006 08:14:00 GMThttp://www.tkk7.com/ocean07000814/articles/70827.htmlhttp://www.tkk7.com/ocean07000814/comments/70827.htmlhttp://www.tkk7.com/ocean07000814/articles/70827.html#Feedback0http://www.tkk7.com/ocean07000814/comments/commentRss/70827.htmlhttp://www.tkk7.com/ocean07000814/services/trackbacks/70827.html ORACLE----触发器,存储q程及JOB

一、ORACLE中创增的ID字段
1、创建序?br /> create *sequence_name*  increment by 1 start with 1 maxvalue 999999999;
2、创发器---(创徏一个基于该表的before insert 触发器,在触发器中用该SEQUENCE)
create or replace trigger *triger_name*
before insert on       *table_name*
referencing old as old new as new for each row
begin
select  *sequence_name.nextval into :new.id from dual;
end;
?
      create sequence FP_FP_SEQ
      minvalue 1
      maxvalue 999999999999999999999999999
      start with 49231
      increment by 1
      cache 10;

      create or replace trigger FP_FP_tig before insert on FP_FP for each row
      begin
       select FP_FP_seq.nextval into :new.id from dual;
      end;
/
二、ORACLE中JOB的应?br />1、创建存储过E?br />create or replace procedure    *pro_name
as
begin
 insert into agri_exhibition_basecur (messid,title,type,pub_date)   select id,title,sort,pub_date from agri_message  where    (trunc(sysdate-pub_date)=0 and rownum<6) and sort='? ;
 insert into agri_exhibition_basecur (messid,title,type,pub_date)   select id,title,sort,pub_date from agri_message  where    (trunc(sysdate-pub_date)=0 and rownum<6) and sort='? ;
end;
/
2、创建JOB
variable jobdxm number;
begin
dbms_job.submit(:jobdxm,'exhi_pro_dxm;',sysdate,'trunc(sysdate,''dd'')+32.5/24');
end;
三、收集的一个简单的JOB实列
1、创建测试表
SQL> create table a(a date);

表已创徏?/p>

2、创Z个自定义q程
SQL> create or replace procedure test as
  2  begin
  3  insert into a values(sysdate);
  4  end;
  5  /

q程已创建?/p>

3、创建JOB
SQL> variable job1 number;
SQL>
SQL> begin
  2  dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/1440');  --每天1440分钟Q即一分钟q行testq程一?br />  3  end;
  4  /

PL/SQL q程已成功完成?/p>

4、运行JOB
SQL> begin
  2  dbms_job.run(:job1);
  3  end;
  4  /

PL/SQL q程已成功完成?/p>

SQL> select to_char(a,'yyyy/mm/dd hh24:mi:ss') 旉 from a;


-------------------
2001/01/07 23:51:21
2001/01/07 23:52:22
2001/01/07 23:53:24

5、删除JOB
SQL> begin
  2  dbms_job.remove(:job1);
  3  end;
  4  /

PL/SQL q程已成功完成?br />6、一些必要的参数
修改initsid.ora参数
job_queue_processes = 4
job_queue_interval = 10
job_queue_keep_connections=true

修改可执行作业个Cؓ20?br />ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 20

修改取消限制模式
ALTER SYSTEM DISABLE RESTRICTED SESSION;

7、两个必要的?br />      user_jobs及dba_jobs_running

8、相关的几个JOB操作
删除job:dbms_job.remove(jobno);
修改要执行的操作:job:dbms_job.what(jobno,what);
修改下次执行旉Qdbms_job.next_date(job,next_date);
修改间隔旉Qdbms_job.interval(job,interval);
停止job:dbms.broken(job,broken,nextdate);
启动job:dbms_job.run(jobno);



]]>
SQLServer和Oracle的常用函数对比(转)http://www.tkk7.com/ocean07000814/articles/70723.html非洲白?/dc:creator>非洲白?/author>Wed, 20 Sep 2006 02:49:00 GMThttp://www.tkk7.com/ocean07000814/articles/70723.htmlhttp://www.tkk7.com/ocean07000814/comments/70723.htmlhttp://www.tkk7.com/ocean07000814/articles/70723.html#Feedback0http://www.tkk7.com/ocean07000814/comments/commentRss/70723.htmlhttp://www.tkk7.com/ocean07000814/services/trackbacks/70723.htmlSQLServer和Oracle的常用函数对?/h4>
---------数学函数

  1.l对?
  S:select abs(-1) value
  O:select abs(-1) value from dual

  2.取整(?
  S:select ceiling(-1.001) value
  O:select ceil(-1.001) value from dual

  3.取整Q小Q?
  S:select floor(-1.001) value
  O:select floor(-1.001) value from dual

  4.取整Q截取)
  S:select cast(-1.002 as int) value
  O:select trunc(-1.002) value from dual

  5.四舍五入
  S:select round(1.23456,4) value 1.23460
  O:select round(1.23456,4) value from dual 1.2346

  6.e为底的幂
  S:select Exp(1) value 2.7182818284590451
  O:select Exp(1) value from dual 2.71828182

  7.取e为底的对?br />  S:select log(2.7182818284590451) value 1
  O:select ln(2.7182818284590451) value from dual; 1

  8.?0为底Ҏ(gu)
  S:select log10(10) value 1
  O:select log(10,10) value from dual; 1

  9.取^?br />  S:select SQUARE(4) value 16
  O:select power(4,2) value from dual 16

  10.取^Ҏ(gu)
  S:select SQRT(4) value 2
  O:select SQRT(4) value from dual 2

  11.求Q意数为底的幂
  S:select power(3,4) value 81
  O:select power(3,4) value from dual 81

  12.取随机数
  S:select rand() value
  O:select sys.dbms_random.value(0,1) value from dual;

  13.取符?br />  S:select sign(-8) value -1
  O:select sign(-8) value from dual -1
  ----------数学函数

  14.圆周?br />  S:SELECT PI() value 3.1415926535897931
  O:不知?/p>

  15.sin,cos,tan 参数都以弧度为单?br />  例如Qselect sin(PI()/2) value 得到1QSQLServerQ?/p>

  16.Asin,Acos,Atan,Atan2 q回弧度

  17.弧度角度互换(SQLServerQOracle不知?
  DEGREESQ弧?〉角?br />  RADIANSQ角?〉弧?/p>

  ---------数值间比较

  18. 求集合最大?br />  S:select max(value) value from
  (select 1 value
  union
  select -2 value
  union
  select 4 value
  union
  select 3 value)a

  O:select greatest(1,-2,4,3) value from dual

  19. 求集合最?br />  S:select min(value) value from
  (select 1 value
  union
  select -2 value
  union
  select 4 value
  union
  select 3 value)a

  O:select least(1,-2,4,3) value from dual

  20.如何处理null?F2中的null?0代替)
  S:select F1,IsNull(F2,10) value from Tbl
  O:select F1,nvl(F2,10) value from Tbl

  --------数值间比较

  21.求字W序?br />  S:select ascii('a') value
  O:select ascii('a') value from dual

  22.从序h字符
  S:select char(97) value
  O:select chr(97) value from dual

  23.q接
  S:select '11'+'22'+'33' value
  O:select CONCAT('11','22')||33 value from dual

  23.子串位置 --q回3
  S:select CHARINDEX('s','sdsq',2) value
  O:select INSTR('sdsq','s',2) value from dual

  23.模糊子串的位|?--q回2,参数L中间%则返?
  S:select patindex('%d%q%','sdsfasdqe') value
  O:oracle没发玎ͼ但是instr可以通过W四N刂瞥鱿执问?BR>  select INSTR('sdsfasdqe','sd',1,2) value from dual q回6

  24.求子?br />  S:select substring('abcd',2,2) value
  O:select substr('abcd',2,2) value from dual

  25.子串代替 q回aijklmnef
  S:SELECT STUFF('abcdef', 2, 3, 'ijklmn') value
  O:SELECT Replace('abcdef', 'bcd', 'ijklmn') value from dual

  26.子串全部替换
  S:没发?br />  O:select Translate('fasdbfasegas','fa','? ) value from dual

  27.长度
  S:len,datalength
  O:length

  28.大小写{?lower,upper

  29.单词首字母大?br />  S:没发?br />  O:select INITCAP('abcd dsaf df') value from dual

  30.左补I格QLPAD的第一个参CؓI格则同space函数Q?br />  S:select space(10)+'abcd' value
  O:select LPAD('abcd',14) value from dual

  31.双I格QRPAD的第一个参CؓI格则同space函数Q?br />  S:select 'abcd'+space(10) value
  O:select RPAD('abcd',14) value from dual

  32.删除I格
  S:ltrim,rtrim
  O:ltrim,rtrim,trim

  33. 重复字符?br />  S:select REPLICATE('abcd',2) value
  O:没发?/p>

  34.发音怼性比?q两个单词返回gP发音相同)
  S:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe')
  O:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') from dual
  SQLServer中用SELECT DIFFERENCE('Smithers', 'Smythers') 比较soundex的差
  q回0-4Q?为同韻I1最?/p>

  --------------日期函数

  35.pȝ旉
  S:select getdate() value
  O:select sysdate value from dual

  36.前后几日
  直接与整数相加减

  37.求日?br />  S:select convert(char(10),getdate(),20) value
  O:select trunc(sysdate) value from dual
  select to_char(sysdate,'yyyy-mm-dd') value from dual

  38.求时?br />  S:select convert(char(8),getdate(),108) value
  O:select to_char(sysdate,'hh24:mm:ss') value from dual

  39.取日期时间的其他部分
  S:DATEPART ?DATENAME 函数 Q第一个参数决定)
  O:to_char函数 W二个参数决?/p>

  参数---------------------------------下表需要补?br />  year yy, yyyy
  quarter qq, q (季度)
  month mm, m (m O无效)
  dayofyear dy, y (O表星?
  day dd, d (d O无效)
  week wk, ww (wk O无效)
  weekday dw (O不清?
  Hour hh,hh12,hh24 (hh12,hh24 S无效)
  minute mi, n (n O无效)
  second ss, s (s O无效)
  millisecond ms (O无效)
  ----------------------------------------------

  40.当月最后一?br />  S:不知?br />  O:select LAST_DAY(sysdate) value from dual

  41.本星期的某一天(比如星期日)
  S:不知?br />  O:SELECT Next_day(sysdate,7) vaule FROM DUAL;

  42.字符串{旉
  S:可以直接转或者select cast('2004-09-08'as datetime) value
  O:SELECT To_date('2004-01-05 22:09:38','yyyy-mm-dd hh24-mi-ss') vaule FROM DUAL;

  43.求两日期某一部分的差Q比如秒Q?br />  S:select datediff(ss,getdate(),getdate()+12.3) value
  O:直接用两个日期相减(比如d1-d2=12.3Q?br />  SELECT (d1-d2)*24*60*60 vaule FROM DUAL;

  44.Ҏ(gu)差值求新的日期Q比如分钟)
  S:select dateadd(mi,8,getdate()) value
  O:SELECT sysdate+8/60/24 vaule FROM DUAL;

  45.求不同时区时?br />  S:不知?br />  O:SELECT New_time(sysdate,'ydt','gmt' ) vaule FROM DUAL;

  -----时区参数,北京在东8区应该是Ydt-------
  AST ADT 大西z标准时?br />  BST BDT 白oh准时?br />  CST CDT 中部标准旉
  EST EDT 东部标准旉
  GMT 格林治标准旉
  HST HDT 阿拉斯加—夏威夷标准旉
  MST MDT 山区标准旉
  NST U芬兰标准时?br />  PST PDT 太^z标准时?br />  YST YDT YUKON标准旉



]]>
վ֩ģ壺 98Ʒѹۿ| þþþ޾ƷŮ| ѹۿİ| 91Ʒѹۿ| ҹþþƷ| ձƵ߹ۿ| þþþùƷѲ| ȫ߹ۿ| ůůƵƵ| ѹۿ91Ƶ| 99ѹۿƵ| ձѴ߹ۿ| ޾ƷƵ߹ۿ| ѿƵվ| Ƶ| ѿԻ40| ޾ƷӰԺ| ޾Ʒ| 18ͬ־videosվ| ձva߹ۿ| ޾ƷۺӰԺ| AVAVպAVվ| ձػɫAAAƬ| һ| 99ѹƷ| ԻԻ³ҹҹѲƵ| 㽶Ƶ߹ۿѹ| zzjjzzjjƵȫ| ޾ƷۺϾþһ| þþƷվ| ޹91Ʒ| AVXXX鶹| 99re6ƵƷ| ĻƵ| պƷƵѹۿ| þAV뾫Ʒ| 㽶Ƶ| ޹˾þۺ| ߹ۿƬڲ| 91Ѳˬ˿| va߹ۿ|