1. ASCII
返回与指定的字符对应的十进制数;
SQL> select ascii(A) A,ascii(a) a,ascii(0) zero,ascii( ) space from dual;
A A ZERO SPACE
--------- --------- --------- ---------
65 97 48 32
2. CHR
给出整数,返回对应的字符;
SQL> select chr(54740) zhao,chr(65) chr65 from dual;
ZH C
-- -
赵 A
3. CONCAT
连接两个字符串;
SQL> select concat(010-,88888888)||转23 高乾竞电话 from dual;
高乾竞电话
----------------
010-88888888转23
4. INITCAP
返回字符串并将字符串的第一个字母变为大写;
SQL> select initcap(smith) upp from dual;
UPP
-----
Smith
5.INSTR(C1,C2,I,J)
在一个字符串中搜索指定的字符,返回发现指定的字符的位置;
C1 被搜索的字符串
C2 希望搜索的字符串
I 搜索的开始位置,默认为1
J 出现的位置,默认为1
SQL> select instr(oracle traning,ra,1,2) instring from dual;
INSTRING
---------
9
6.LENGTH
返回字符串的长度;
SQL> select name,length(name),addr,length(addr),sal,length(to_char(sal)) from gao.nchar_tst;
NAME LENGTH(NAME) ADDR ......
• 80。LAST
功能描述:从DENSE_RANK返回的集合中取出排在最后面的一个值的行(可能多行,因为值可能相等),因此完整的语法需要在开始处加上一个集合函数以从中取出记录
SAMPLE:下面例子中DENSE_RANK按部门分区,再按佣金commission_pct排序,FIRST取出佣金最低的对应的所有行,然后前面的MAX函数从这个集合中取出薪水最低的值;LAST取出佣金最高的对应的所有行,然后前面的MIN函数从这个集合中取出薪水最高的值
SELECT last_name, department_id, salary,
MIN(salary) KEEP (DENSE_RANK FIRST ORDER BY commission_pct)
OVER (PARTITION BY department_id) "Worst",
MAX(salary) KEEP (DENSE_RANK LAST ORDER BY commission_pct)
OVER (PARTITION BY department_id) "Best"
from employees
WHERE department_id in (20,80)
ORDER BY department_id, salary;
LAST_NAME DEPARTMENT_ID SALARY Worst Best
------------------------- ------------- ---------- ---------- ----------
Fay 20 6000 6000 13000
Hartstein 20 13000 6000 13000
Kumar 80 6100 6100 14000
Banda 80 6200 6100 14000
Johnson 80 6200 6100 14000
Ande 80 ......
1、创建表:
例: create table student(
xh number(4),
xm varchar2(20),
sex char(20),
birthday date,
sal number(7,2)
);
2、在表中添加字段:
alter table student add(classId number(2));
3、 查看表的结构
desc student;
4、修改字段的长度
alter table student modify (xm varchar2(30))
5、修改字段的类型/或是名字(前提是表中不能有数据)
& ......
最近碰到这样一个问题:在PROD_PARTS表中新添加了一个索引:
create index IDX_PT_DV_ID on PROD_PARTS (DEVICE_ID);
但是在使用DEVICE_ID字段进行查询时,发现该索引并没有被利用到:
SELECT * from PROD_PARTS WHERE device_id =122511619;
执行计划:
TABLE ACCESS FULL
之后请教DBA后,发现是数据统计的问题,具体的解决办法是执行下面的语句:
analyze table PROD_PARTS compute statistics;
ANALYZE TABLE PROD_PARTS COMPUTE STATISTICS FOR ALL INDEXED COLUMNS;
analyze table PROD_PARTS compute statistics for table for all indexes for all indexed columns;
......
oracle连接到远程数据库配置有多种方法可以配置。 在本机上添加一个服务命名。
第一种方法:
用oracle net manager增加一个服务命名。第一个名称为服务命名(自定义);后面的按照要求依次填上数据库ip地址,端口号和数据库名称。
第二种方法:
直接修改配置文件。 具体方法如下:
文件地址:D:\Oracle10g\network\admin\tnsnames.ora
配置后即可用PLSQL Developer访问
# tnsnames.ora Network Configuration File: D:\Oracle10g\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
--本机数据库
ORACLE10 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = PC-200903121354)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = oracle10)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
& ......
1:导出表结构与记录
运行--> exp userName/password@dataName file=d:\aa.dmp
2:导如表结构与记录
imp userName/password@dataName file=d:\aa.dmp full=y ignore=y ......