`

sql整理

阅读更多
SQL基本语句小结
1、显示一个表中字段
      desc 表名(看表结构)
2.删表中的字段
   Alter table 表 drop (字段名)
3.增加表中的字段
Alter table 表 add( 字段类型)
2、得到所有表或视图
select * from tab
3、连接用户
     conn 用户/密码 grant dba to 用户
4、排序
     order by 字段 desc(asc)
5、数据库中所有表都有个隐藏的序列编号rowid
6、导出、导入
导出:exp 用户/密码 tables=(表1,表2,..) file=导出表.dmp
exp 用户/密码full=y(N) filell=导出表.dmp
导入:imp 用户/密码 full=y(N) filell=导出表.dmp
远程:exp 用户/密码@oradb_IP tables=(表1,表2,..) file=导出表.dmp
7、多条记录只取一个
select Distinct 字段 from table group by ….
8、创建序列
Create sequence test start with 1 increment by 1 nomaxvalue nocycle cache 10
Exp: insert into table (..)values(序列名.nextval)
CREATE SEQUENCE "Y_CY3"."SKFAID" INCREMENT BY 1 START WITH 1
    MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE
CACHE 20 ORDER

    Select序列名.nextval from dual   下一条序列值
    Select序列名.currval from dual    序列当前值
9删除用户对应的表:
drop user 用户名 cascade
10、月加一,并按格式显示
TO_CHAR(add_months(JDRQ,jdxyzq-1),'yyyy-mm')
11、系统时间
SELECT TO_CHAR(SYSDATE,'YYYY-mm') FROM DUAL
12、相同记录显示固定的行
   select * from table_name where rownum<N
13、视图中查询条件是由程序传递的。要想用这个条件更新视图,可以创建一个表,这个表一个字段存放程序传递的参数,而这个表中的这个字段要由这个视图创建的表建立条件关联,当这个字段改变时,视图就回自动发生改变。所以根据程序参数查询视图时,先把参数保存到这个与视图关联条件的参数表中的对应的字段中,之后就可查询你要的视图数据了
14、在我的机器上安装了一个oracle 9 数据库服务器,其中还有一个orace数据库(只有读数据的权限,用户:cy7),我如何在我本地机器上创建一个视图来直接访问那台(不是本机的)数据库中cy7中的表或视图。
先建一个到另一数据库的连接:
create database link link_name
connect to cy7 identified by 密码
using '连接串'
然后在本地:
create or replace view view_name as
select * from 表名@link_name      <---这里的表名是cy7的表名
15、在sql中设置多少条记录显示一个字段名称
Set pagesize 100;
16、把sql中的查询数据导入到文本中
   Spool c:\qqq.txt
      ….查询语句
Spool off
Q1.怎样创建表?
A.      CREATE TABLE TABLE_NAME(
COLUMN1_NAME NUMBER(5) PRIMARY KEY,
COLUMN2_NAME CHAR(10) NOT NULL,
COLUMN3_NAME DATE DEFAULT(SYSDATE),
COLUMN4_NAME NUMBER(7,2) CHECK COLUMN4_NAME<CHECKVALUES,
COLUNM5_NAME NUMBER(3) CHECK(COLUMN5_NAME IN(‘FIRST_VALUES’,’SECOND_VALUES’,……’LAST_VALUES’)),
FOREIGN KEY(COLUMN_NAME) REFERENCE PARENT_TABLE_NAME.COLUMN_NAME)
PCTFREE 10
PCTUSED 40
TABLESPACE USERS
STORAGE(
          INITIAL 50K
          NEXT 50K
          MAXEXTENTS 10
          PCTINCREASE 25);

Q2.怎样删除表?
DROP  TABLE  TABLE_NAME;

Q3.怎样创建视图?
CREATE OR REPLACE VIEW VIEW_NAME AS SQLSTR;
Create view 视图名 as select 要显示各个表要显示字段名 from 表1,表2… where 条件
Q4.怎样删除视图?
. DROP VIEW VIEW_NAME;
Q5.怎样给表添加字段?
ALTER TABLE TABLE_NAME ADD COLUMN_NAEM CHAR(12);
ALTER TABLE TABLE_NAME ADD (COLUMN1_NAME CHAR(12),COLUMN2_NAME NUMBER);
Q6.怎样删除表中某个字段?
ALTER TABLE TABLE_NAME DROP COLUMN COLUMN_NAME;
ALTER TABLE TABLE_NAME DROP (COLUMN1_NAME ,COLUMN2_NAME);
Q7.怎样给某个字段添加约束?
ALTER TABLE TABLE_NAME MODIFY COLUMN_NAME NOT NULL;
Q8.怎样去除某个字段上的约束?
ALTER TABLE TABLE_NAME MODIFY COLUMN_NAME NULL;
Q9.怎样给表加上主键?
ALTER TABLE TABLE_NAME ADD CONSTRAINT PRIMARYKEY_NAME PRIMARY KEY (COLUMN_NAME);
Q10.怎样删除表的主键?
ALTER TABLE TABLE_NAME DROP CONSTRAINT PRIMARYKEY_NAME CASCADE;
Q11.怎样给表添加一个外键?
ALTER TABLE TABLE1_NAME ADD CONSTRAINT FOREIGNKEY_NAME FOREIGN KEY (COLUMN_NAME) REFERENCES TABLE2_NAME (COLUMN_NAME) ON DELETE CASCADE;
Q12.怎样删除表的一个外键?
ALTER TABLE TABLE_NAME DROP CONSTRAINT FOREIGNKEY_NAME;
Q13.怎样给字段加上CHECK?
ALTER TABLE TABLE_NAME ADD CONSTRAINT CHECK_NAME CHECK COLUMN_NAME<10;
ALTER TABLE TABLE_NAME ADD CONSTRAINT CHECK_NAME CHECK(COLUMN_NAME IN(‘X’,’Y’));
Q14.怎样去掉字段上的CHECK?
ALTER TABLE TABLE_NAME DROP CONSTRAINT CHECK_NAME;
Q15.怎样给字段设置默认值?
ALTER TABLE TABLE_NAME MODIFY COLUMN_NAME DEFAULT 'DEFAULT_VALUE';
Q16.怎样移去字段的默认值?
ALTER TABLE TABLE_NAME MODIFY COLUMN_NAME DEFAULT NULL;
Q17.怎样创建索引?
CREATE UNIQUE INDEX INDEX_NAME ON TABLE_NAME (COLUMN_NAME);
Q18.怎样删除索引?
DROP INDEX INDEX_NAME;
Q19.怎样创建用户?
CREATE USER USER_NAME IDENTIFIED BY USER_PASSWORD
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT;
Q20.怎样删除用户?
DROP USER USER_NAME CASCADE;
Q21.怎样将权限( privileges)授予用户?
A.      GRANT SELECT, INSERT, UPDATE, DELETE, ALTER ON TABLE_NAME TO USER_NAME;
B.      GRANT INSERT(COLUMN1_NAME,COLUMN2_NAME) ON TABLE_NAME TO USER_NAME;
C.      GRANT ALL ON TABLE_NAME TO USER_NAME;
D.     GRANT CONNECT ,RESOURCE,DBA TO USER_NAME;
E.      GRANT ROLE_NAME(PRIVILEGE_NAME) TO USER_NAME WITH ADMIN OPTION;
Q22.怎样从用户收回对象权限?
A.      REVOKE SELECT, INSERT, UPDATE, DELETE, ALTER ON TABLE_NAME FROM USER_NAME;
B.      REVOLE CONNECT,RESOURCE,DBA FROM USER_NAME;
Q23.怎样更登陆改用户密码?
A .PASSWORD
Q24.怎样更改未登陆用户密码?
A. PASSWORD USER_NAME
Q25.怎样更改表名?
A. RENAME OLD_TABLE_NAME TO NEW_TABLE_NAME
Q26.怎样创建数据库连接?
A.      CREATE PUBLIC DATABASE LINK LINK_NAME
CONNECT TO USER_NAME IDENTIFIED BY USER_PASSWORD
USING’SEVER_NAME’
Q27.怎样创建序列?
A. CREATE SEQUENCE SEQUENCE_NAME
MINVALUE 1
MAXVALUE 999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 10
ORDER;
Q28.怎样删除序列?
A. DROP SEQUENCE SEQUENCE_NAME;
Q29.怎样获取序列值?
A. SELECT SEQUENCE_NAME FROM DUAL;
Q30.怎样创建角色?
A. CREATE ROLE ROLE_NAME;
Q31.怎样删除角色?
A. DROP ROLE ROLE_NAME;
Q32.怎样将权限( privileges)授予角色?
A.      GRANT SELECT, INSERT, UPDATE, DELETE, ALTER ON TABLE_NAMEE TO ROLE_NAME;
B.      GRANT CREATE TABLE TO ROLE_NAME;
Q33.怎样从角色收回权限?
A.      REVOKE SELECT, INSERT, UPDATE, DELETE, ALTER ON TABLE_NAME FROM ROLE_NAME;
B.      REVOKE CREATE TABLE FROM ROLE_NAME;
Q34.怎样将角色权限(role privileges)授予角色?
A. GRANT DBA TO ROLE_NAME;
Q35.怎样从角色收回角色权限?
A. REVOKE DBA FROM ROLE_NAME;
Q36.怎样连到远程数据库?
A. CONN USER_NAME/USER_PASSWORD@SERVER_NAME;
Q37.怎样直接查看远程表的内容?
A. SELECT * FROM TABLE_NAME@LINK_NAME;
Q38.不等于条件有哪几种写法?
A.      !=;
B.      ^=;
C.      <>;
Q39.like子句的用法?
A.      LIKE '%Y%';’包含字母Y的;
B.      LIKE’Y%’;’以字母Y打头的;
C.      LIKE’-----’;’有五个字母的
D.     LIKE’[c-jC-J]’;’首字母在c-j或C-J范围内的;
E.      LIKE’[^c-jC-J]’;首字母不在范围内的;
Q40.用TRUNCATE函数清除表中全部记录?
A. TRUNCATE TABLE TABLE_NAME
Q41.Oracle常用字符串处理函数有哪些?
A. || 连接两个字符串; LENGTH  字符串长度; TRIM/LTRIM/RTRIM 截断串左(右)指定字符串(包括空串); LOWER/UPPER 将字符串转换为小/大写,等等。
例如:SELECT COLUMN1_NAME||'--'||COLUMN2_NAME||'YES' FROM TABLE_NAME;;
Q42.Oracle支持哪些数字处理函数?
A. Oracle支持所有常用数字函数,包括(但不限于)+、-、*、/、ABS、COS、EXP、LN、LOG、MOD、POWER、ROUND、SIN、 SINH、SQRT、TAN、TRUNC、AVG、COUNT、MAX、MIN、SUM、GREATEST、LEAST等等。
例如:
SELECT GREATEST(3, 4, 5)*4 FROM DUAL;
SELECT POWER(2,3) FROM DUAL;
Q43.怎样取得数据库服务器当前日期、时间?
A. SELECT SYSDATE FROM DUAL;
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH:MI:SS') FROM DUAL;
Q44.怎样将字符串转换为日期、时间格式?
A. SELECT TO_DATE('2002-11-27', 'YYYY-MM-DD') FROM DUAL;
SELECT TO_DATE('2002-11-27 09:28:55', 'YYYY-MM-DD HH:MI:SS') FROM DUAL;
Q45.常用日期函数有哪些?
A. NEXT_DAY  LAST_DAY  ADD_MONTHS  MONTHS_BETWEEN等等。
例如:SELECT LAST_DAY(SYSDATE) FROM DUAL;
Q46.DECODE函数的用法?
A. DECODE函数的格式为DECODE(value, if1, then1, if2, then2...,else)。假设表TABLE_NAME中有如下数据:
ID     NAME    ORDER
--------------------------------------
1            royal        1
2            bill         2
3            joy          1
请观察如下SQL语句输出结果。
SELECT DECODE(NAME, 'royal', 'royaltest', 'bill', 'billgates', NAME) AS DC FROM TABLE_NAME;
DC
---------
royaltest
billgates
joy

Q48.Oracle有哪些常用数据字典?
A. USER_TABLES(TABS)、USER_TAB_COLUMNS(COLS)、USER_VIEWS、USER_SEQUENCES(SEQ)、 USER_CONSTRAINTS、USER_CONS_COLUMNS、USER_TAB_COMMENTS、USER_COL_COMMENTS、 USER_INDEXES(IND)、USER_IND_COLUMNS、USER_USERS、DBA_USERS、ALL_USERS、 USER_TABLESPACES等等。
例如:SELECT * FROM USER_CONSTRAINTS WHERE CONSTRAINT_NAME = 'FOREIGN_KEY';
Q49.怎样将日期、时间插入date型字段中?
A. INSERT INTO TABLE_NAME (RM_INT_FIELD, RM_STR_FIELD, RM_DATE_FIELD) VALUES (9, 'Y', TO_DATE('2002-05-23', 'YYYY-MM-DD'));
INSERT INTO TALBE_NAME (INT_COLUMN, STR_COLUMN, DATE_COLUMN) VALUES (10, 'Y', TO_DATE('2002-10-10 8:23:33', 'YYYY-MM-DD HH:MI:SS'));
Q50.怎样使用下connect by?
A. connect by子句提供了遍历“树”的手段。
假设有这样一个表:CREATE TABLE TABLE_NAME (ID INTEGER, PARENT_ID INTEGER, NAME VARCHAR2(32));
表中有如下数据:

ID PARENT_ID NAME
-----------------
2      1     AAA
3      1     BBB
4      2     CCC
5      2     DDD
6      4     EEE
8      7     GGG
假如我们现在需要从NAME = 'EEE'的记录开始,向上查找所有有父子关系的记录,可执行如下SQL语句:
SELECT * FROM ROYAL_TREETABLE START WITH NAME = 'EEE' CONNECT BY ID = PRIOR PARENT_ID;

ID PARENT_ID NAME
-----------------
6  4         EEE
4  2         CCC
2  1         AAA
Q51 怎样删除表中重复列?
A.      DELETE FROM A A WHERE A.ROWID!=(SELECT MAX(ROWID) FROM A B WHERE A.COLUMN1=B.COLUMN1 AND …A.COLUMNn=B.COLUMNn);
Q52怎样从一表中删除在另一表中存在的记录?
A.      DELETE FROM A WHRE EXISTS(SELECT FROM B WHERE A.COLUMN=B.COLUMN);
B.      DELETE FROM AWHERE A.COLUMN IN(SELECT B.COLUMN FROM B);’记录超过十万,极慢.
Q53 怎样查找一表中有而另一表中没有的记录?
A.      SELECT * FROM A WHERE NOT EXISTS(SELECT * FROM B WHERE A.COLUMN=B.COLUMN);
B.      SELECT * FROM A WHERE A.COLUMN NOT IN(SELECT * FROM A INTERSET SELECT * FROM B);

数字函数
value1/value2 求两个数的商
ABS(value)    求这个数的绝对值
NVL(value,substitute)将数值为null的value字段值由substitute所制定的值替换
CEIL(value)求最小的大于等于这个数值的整数值
COS(value)求一个数的余弦数值
COSH(value)由一个数的双曲余弦数值
EXP(value) 求e的以value这个数为指数的幂
FLOOR(value)求最大的小于等于这个数的整数值
LN(vlaue)求这个数的自然对数值
LOG(value,value)求这个数的常数对数值
MOD(value,divisor)求两个数的余数
POWER(value,exponent)求value的exponent次指数幂
ROUND(value,precision)将value值四舍五入到precision制定的精度
SIGN(value)取该是的符号,此数为正数时取回正号,显示“+”;为负时取回负号“-”
SIN(value)求这个数的正弦函数值
SINH(value)求这个数的双曲正弦函数值
SQRT(value)求这个数的平方根
TAN(value)求这个数的正切函数值
TANH(value)求这个数的双曲正切函数值
TEUNC(value,precsion)将value的值取得precsion制定位数的精度

Select avg(nvl(wages,0)) form wmployee
日期函数
ADD_MONTHS(DATE,COUNT)对该日期增加几个月。增加数由count给出
GREATEST(date1,date2,….)从一连串日期列表中找到最近的一个月
LAST_DAY(day)返回日期值所在的月的最后一天
MONTH_BETWEEN(date2,date1)在两个如期之间的相隔天数
NEXT_DAY(DATE,’day’)返回制定日期的所有在星期的某一日的日期,“day”代表星期:Friday
TO_CHAR(date,’format’)根据日期格式描述符重新设定日期格式
TO_DATE(srting,’format’)将一个串转换为给定格式的日期
聚组函数
avg(value)      计算该组数的平均值
count(value)    
max(value)
min(value)
stddev(value)
sum(value)
variance(value)
8. CHR()的反函数是?
ASCII()
SELECT CHAR(65) FROM DUAL;
    SELECT ASCII('A') FROM DUAL;
89. 字符串的连接
    SELECT CONCAT(COL1,COL2) FROM TABLE ;
    SELECT COL1||COL2 FROM TABLE ;
90. 怎么把select出来的结果导到一个文本文件中?
    SQL>SPOOL C:\ABCD.TXT;
    SQL>select * from table;
    SQL >spool off;
91. 怎样估算SQL执行的I/O数 ?
    SQL>SET AUTOTRACE ON ;
    SQL>SELECT * FROM TABLE;
    OR
    SQL>SELECT * FROM v$filestat ;
可以查看IO数
92. 如何在sqlplus下改变字段大小?
    alter table table_name modify (field_name varchar2(100));
    改大行,改小不行(除非都是空的)
93. 如何查询某天的数据?
    select * from table_name where trunc(日期字段)=to_date('2003-05-02','yyyy-mm-dd');

94. sql 语句如何插入全年日期?
create table BSYEAR (d date);
insert into BSYEAR
select to_date('20030101','yyyymmdd')+rownum-1
from all_objects
where rownum <= to_char(to_date('20031231','yyyymmdd'),'ddd');
95. 如果修改表名?
alter table old_table_name rename to new_table_name;
96. 如何取得命令的返回状态值?
sqlcode=0
97. 如何知道用户拥有的权限?
    SELECT * FROM dba_sys_privs ;
98. 从网上下载的ORACLE9I与市场上卖的标准版有什么区别?
          从功能上说没有区别,只不过oracle公司有明文规定;从网站上下载的oracle产品不得用于 商业用途,否则侵权。
99. 怎样判断数据库是运行在归档模式下还是运行在非归档模式下?
进入dbastudio,历程--〉数据库---〉归档查看。
100. sql>startup pfile和ifile,spfiled有什么区别?
pfile就是Oracle传统的初始化参数文件,文本格式的。
ifile类似于c语言里的include,用于把另一个文件引入
spfile是9i里新增的并且是默认的参数文件,二进制格式
startup后应该只可接pfile
101. 如何搜索出前N条记录?
SELECT * FROM empLOYEE WHERE ROWNUM < n
ORDER BY empno;
102. 如何知道机器上的Oracle支持多少并发用户数?
     SQL>conn internal ;
SQL>show parameter processes ;
104. 如何统计两个表的记录总数?
     select (select count(id) from aa)+(select count(id) from bb) 总数 from dual;
105. 怎样用Sql语句实现查找一列中第N大值?
    select * from
(select t.*,dense_rank() over (order by sal) rank from employee)
where rank = N;
106. 如何在给现有的日期加上2年?(
    select add_months(sysdate,24) from dual;
111. 返回大于等于N的最小整数值?
      SELECT CEIL(N) FROM DUAL;
112. 返回小于等于N的最小整数值?
      SELECT FLOOR(N) FROM DUAL;
113. 返回当前月的最后一天?
     SELECT LAST_DAY(SYSDATE) FROM DUAL;
114. 如何不同用户间数据导入?
IMP SYSTEM/MANAGER FILE=AA.DMP FROMUSER=USER_OLD   TOUSER=USER_NEW ROWS=Y INDEXES=Y ;
115. 如何找数据库表的主键字段的名称?
     SQL>SELECT * FROM user_constraints WHERE CONSTRAINT_TYPE='P' and   table_name='TABLE_NAME';
116. 两个结果集互加的函数?
   SQL>SELECT * FROM BSEMPMS_OLD INTERSECT SELECT * FROM BSEMPMS_NEW;
  SQL>SELECT * FROM BSEMPMS_OLD UNION SELECT * FROM BSEMPMS_NEW;
  SQL>SELECT * FROM BSEMPMS_OLD UNION ALL SELECT * FROM BSEMPMS_NEW;
117. 两个结果集互减的函数?
SQL>SELECT * FROM BSEMPMS_OLD MINUS SELECT * FROM BSEMPMS_NEW;
118. 如何配置Sequence?
    建sequence seq_custid
  create sequence seq_custid start 1 incrememt by 1;
  建表时:
  create table cust
  { cust_id smallint not null,
  ...}
  insert 时:
  insert into table cust
  values( seq_cust.nextval, ...)

日期的各部分的常用的的写法
119>.取时间点的年份的写法:
     SELECT TO_CHAR(SYSDATE,'YYYY') FROM DUAL;
120>.取时间点的月份的写法:
     SELECT TO_CHAR(SYSDATE,'MM') FROM DUAL;
121>.取时间点的日的写法:
     SELECT TO_CHAR(SYSDATE,'DD') FROM DUAL;
122>.取时间点的时的写法:
     SELECT TO_CHAR(SYSDATE,'HH24') FROM DUAL;
123>.取时间点的分的写法:
     SELECT TO_CHAR(SYSDATE,'MI') FROM DUAL;
124>.取时间点的秒的写法:
     SELECT TO_CHAR(SYSDATE,'SS') FROM DUAL;
125>.取时间点的日期的写法:
     SELECT TRUNC(SYSDATE) FROM DUAL;
126>.取时间点的时间的写法:
     SELECT TO_CHAR(SYSDATE,'HH24:MI:SS') FROM DUAL;
127>.日期,时间形态变为字符形态
     SELECT TO_CHAR(SYSDATE) FROM DUAL;
128>.将字符串转换成日期或时间形态:
     SELECT TO_DATE('2003/08/01') FROM DUAL;
129>.返回参数的星期几的写法:
     SELECT TO_CHAR(SYSDATE,'D') FROM DUAL;
130>.返回参数一年中的第几天的写法:
     SELECT TO_CHAR(SYSDATE,'DDD') FROM DUAL;
131>.返回午夜和参数中指定的时间值之间的秒数的写法:
     SELECT TO_CHAR(SYSDATE,'SSSSS') FROM DUAL;
132>.返回参数中一年的第几周的写法:
     SELECT TO_CHAR(SYSDATE,'WW') FROM DUAL;
  
133备份数据
1、                 Oracle 8.1.6 For NT移植
初步设想也通过Oracle 8.0.5进行过度。因其版本比Oracle 8.0.5高、下面对参考的规则进行一些校验。
3.1高版本的Export导出来的转储文件,低版本的Import读不了
在Oracle 8.1.6数据库服务器导出转储二进制文件:ora816.dmp。
在Oracle 8.0.5数据库服务器上用Imp80进行导入。
D:>Imp80 house/password file=d:\ ora816.dmp log=d:\ora816.log full=y
/*日志显示*/
已连接到:Oracle8 Release 8.0.5.0.0 – Production
PL/SQL Release 8.0.5.0.0 – Production
IMP-00010: 不是有效的导出文件,标题检验失败
IMP-00021: 操作系统错误 - 错误代码(十进制2,十六进制0x2)
IMP-00000: 未成功终止导入
3.2 Oracle的Export/Import工具只能连接到拥有更高或者一样的Export/Import版本的数据库
a)Oracle 8.1.6远程数据导入  
在Oracle 8.1.6数据库服务器导出转储二进制文件:ora816.dmp。
在Oracle 8.1.6数据库服务器向Oracle8.0.5数据库进行数据远程导入
D:>Imp house/password@orclfrom816to805 file=d:\ ora816.dmp log=d:\ora816.log full=y
(orclfrom816to805为数据库连接字符串由Oracle8.1.6数据库指向 Oracle8.0.5数据库)
/*日志显示*/
连接到: Oracle8 Release 8.0.5.0.0 – Production
PL/SQL Release 8.0.5.0.0 – Production
……
经由常规路径导出由EXPORT:V08.01.06创建的文件
已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入
IMP-00003: ORACLE 错误2248出现
ORA-02248: 无效的 ALTER SESSION 选项
IMP-00000: 未成功终止导入

b)在Oracle 8.0.5数据库服务器上用exp80对Oracle 8.1.6数据库进行远程导出。
D:>exp80 house/password@orclfrom805to816 file=d:\ora816.dmp log=d:\ora816.log
(orclfromfrom805to816为数据库连接字符串由Oracle8.0.5数据库指向Oracle8.1.6数据库)
/*日志显示*/
连接到:Oracle8i Enterprise Edition Release 8.1.6.0.0 – Production
With the Partitioning option
JServer Release 8.1.6.0.0 – Production
已导出ZHS16GBK字符集和ZHS16GBK NCHAR 字符集
即将导出指定的用户...
……
在没有警告的情况下成功终止导出。

再对远程导出的转储文件在Oracle 8.0.5数据库服务器上用imp80导入。
D:>imp80 house/password file=d:\ora816.dmp full=y log=d:\ora816 _i.log
显示成功导入
此刻此移植就变成了Oracle 8.0.5 For NT移植至Oracle 8.0.4 For Digital Unix的移植。

好的例子
表1
id   ,BID, date
1    303    2003-4-6
2    303    2003-5-6
3    303    2004-4-3
4    304    2003-2-5
5    304    2003-5-3
6    304    2003-6-4
7    305    2003-5-6
8    305    2003-7-6
字段id是一个序列,主要是找每个BID中相同的BID中最大的时间对应的id,如何写这个SQL语句啊??
结果用给是,
           3     303 2004-4-3
           6     304 2003-6-4
           8     305 2003-7-6
select abc.id,abc.bid,abc.date
from abc
where abc.id in (select Max(abc.id) from abc group by abc.bid)
SELECT max(abc.ID) as id, abc.bid
FROM abc
GROUP BY abc.bid;
234更新存储过程
pl/SQL
   command window
    execute FILLRULEBASE
导入存储过程
cmd plus
start 存储过程
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics