study/oracle/oracle常用命令和函数.md

72 lines
1.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## oracle 常用命令
1. 开启监听 `lsnrctl start`,关闭监听`lsnrctl stop`;
2. 查看oracle版本
```sql
select * from v$version;
```
3.
```sql
SPOOL report
@run_report -- 指定输出文件可使用SPOOL report.txt
SPOOL OFF
```
将输出的内容写道命名为`report.lst`的文件当中
4. 查看ORACLE相关参数
```
select * from v$NLS_PARAMETERS;
```
5. 在sqlplus中执行Linux命令:在Linux命令最前面添加! ,比如`!pics -a`
## oracle 常用函数
1. decode()
以下sql
```sql
SELECT supplier_name,
decode(supplier_id, 10000, 'IBM',
10001, 'Microsoft',
10002, 'Hewlett Packard',
'Gateway') result
FROM suppliers;
```
相当于
```sql
IF supplier_id = 10000 THEN
result := 'IBM';
ELSIF supplier_id = 10001 THEN
result := 'Microsoft';
ELSIF supplier_id = 10002 THEN
result := 'Hewlett Packard';
ELSE
result := 'Gateway';
END IF;
```
比如以下语句
```sql
select decode(a.count,1,3) from (select count(*) as count from dual) a;
```
2. mod 函数
mod(除数,被除数)
```sql
select mod(2,4) from dual;
```
3. nvl 函数
```sql
nvl(expre1,expre2)
```
当expre1 为空时返回expre2的值
4. multiset 函数
告诉oracle这个查询想返回多行数据
5. case函数
对oracle的对象进行强制转换比如
```sql
select case( empno as varchar2(20) ) e from eoda.emp;
```