【Oracle笔记】Oracle常用笔记

本文介绍了数据库中的MERGE INTO语法,用于数据的合并更新;详细阐述了DECODE和NVL两个实用函数的用法;并探讨了自定义函数的创建过程。同时,讲解了如何维护数据库连接数、服务的启动和关闭,以及处理锁问题的步骤。此外,还分享了利用DUMP进行数据拷贝的方法,为数据库管理和性能优化提供了实用指南。
摘要由CSDN通过智能技术生成

语法

merge into

MERGE INTO [target-table] A USING [source-table sql] B ON([conditional expression] and [...]...)
WHEN MATCHED THEN
	[UPDATE sql]
WHEN NOT MATCHED THEN
	[INSERT sql]

函数

decode

decode(expression,value1,result1,value2,result2...defaultValue)

如果 expression=value1,则输出 result1;expression=value2,则输出 result2;…如果所有value都没有匹配上,则取默认值 defaultValue

nvl

nvl(string,replace_with)

当第一个参数(string)为空时,返回第二个参数(replace_with);
当第一个参数(string) 不为空时,则返回第一个参数(string)。

LENGTHB

获取字符串的字节数

SELECT LENGTHB('安吉产投2023年非公开公司债券01') FROM dual;

自定义函数

CREATE OR REPLACE FUNCTION 函数名(参数列表)
RETURN 返回值类型
IS
声明部分;
BEGIN
函数体;
RETURN 变量;
END;

维护

连接数

-- 命令查看的是汇总的信息
show parameter processes;

-- 查看最大进程连接数
select value from v$parameter where name ='processes';

-- 修改连接数
alter system set processes = 3000 scope = spfile;

服务启动 / 关闭

sqlplus登陆后:

-- 关闭
shutdown immediate;
-- 启动
startup;

ORA-00054: 资源正忙,要求指定 NOWAIT

解决方案:

1.查看有没有对象被锁

select * from v$locked_object;

2.得到被锁对象的session_id

select session_id from v$locked_object;

3.通过上⾯得到的session_id去取得v$session的sid和serial#(sid是第2步得到的session_id)

SELECT sid, serial#, username, osuser FROM v$session where sid = '259';

4.杀死该进程(ALTER SYSTEM KILL SESSION ‘sid,serial’)

ALTER SYSTEM KILL SESSION '259,3057';

dump 拷贝数据

exp <用户名>/<密码>@<源库实例名> file=<导出文件名>.dmp

imp <用户名>/<密码>@<目标实例名> file=<导出文件名>.dmp

数据类型

varchar

默认语义:

Oracle 可以通过 NLS_LENGTH_SEMANTICS 参数来设置默认的长度语义。如果该参数设置为 CHAR,那么 VARCHAR2(n) 默认表示字符数。如果该参数设置为 BYTE,则默认表示字节数。
可以通过以下查询查看当前会话或数据库的默认设置:

-- 查看当前会话的长度语义
SELECT VALUE FROM NLS_SESSION_PARAMETERS WHERE PARAMETER = 'NLS_LENGTH_SEMANTICS';
-- 查看数据库级别的长度语义
SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER = 'NLS_LENGTH_SEMANTICS';

CHAR:表示默认按字符长度计算。
BYTE:表示默认按字节长度计算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nonoas

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值