oracle相关设置
来源:互联网 发布:服务器网络架构 编辑:程序博客网 时间:2024/06/08 11:20
服务端运行(字符)
select userenv('language') from dual;
修改db编码的办法:(在oracle 11g上通过测试)
SQL> conn system as sysdba;
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter system enable restricted session;
SQL> alter system set job_queue_processes=0;
SQL> alter database open;
SQL> alter database character set internal_use AL32UTF8;
SQL> shutdown immediate;
SQL> startup
用户权限
create userEMFUND
identified by EMFUND;
grant connect to EMFUND;
grant resource to EMFUND;
grant dba to EMFUND;
grant connect,resource,dba to zcs;
表空间
create tablespace PAYIDX
datafile 'E:/app/PAYIDX.dbf'
size 150M
autoextend on next 5M maxsize 3000M
数据库启动
lsnrctl status
net start OracleDBConsolezcs
net start OracleOraDb11g_home1TNSListener
net start OracleServiceZCS
lsnrctl start
net stop OracleDBConsolezcs
net stop OracleOraDb11g_home1TNSListener
net stop OracleServiceZCS
lsnrctl stop
序列
CREATESEQUENCE "PAYDEV"."TB_CUSTOMERROUTER_ID_SEQ" MINVALUE1MAXVALUE9999999999999999999999999999INCREMENTBY1STARTWITH1CACHE20NOORDER NOCYCLE ;
触发器
createorreplaceTRIGGER PAYDEV."TB_CUSTOMERROUTER_TRG"BEFOREINSERTON TB_CUSTOMERROUTER
FOREACHROW
DECLARE
v_newVal NUMBER(12) :=0;
v_incval NUMBER(12) :=0;
BEGIN
IF INSERTINGAND :new.c_idISNULLTHEN
SELECT TB_CUSTOMERROUTER_ID_SEQ.NEXTVALINTO v_newValFROM DUAL;
-- If this is the first time this table havebeen inserted into (sequence == 1)
IF v_newVal =1THEN
--get the max indentity valuefrom the table
SELECTNVL(max(c_id),0)INTO v_newVal FROM TB_CUSTOMERROUTER;
v_newVal := v_newVal + 1;
--set the sequence to thatvalue
LOOP
EXITWHEN v_incval>=v_newVal;
SELECTTB_CUSTOMERROUTER_ID_SEQ.nextvalINTO v_incvalFROM dual;
ENDLOOP;
ENDIF;
--used to emulate LAST_INSERT_ID()
--mysql_utilities.identity := v_newVal;
-- assign the value from the sequence toemulate the identity column
:new.id := v_newVal;
ENDIF;
END;
Oracle函数
row_number() OVER(PARTITIONBY)
根据BindID 排序 ACCOUNTNO分组,记录每条数据在一组数据中的排序情况
Merge into
MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。
通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,
连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。
这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。
实例:
merge into users
using doctor
on (users.user_id = doctor.doctorid)
when matched then
update setusers.user_name = doctor.doctorname
when not matched then
insert
values
(doctor.doctorid,
doctor.doctorid,
'8736F1C243E3B14941A59FF736E1B5A8',
doctor.doctorname,
sysdate,
'T',
' ',
doctor.deptid,
'b319dac7-2c5c-496a-bc36-7f3e1cc066b8');
SYS_CONNECT_BY_PATH
拼接某些规则数据(红色可以使用递归分组拼接)
selectconnect_by_iscycle,sys_connect_by_path(child,"/") pathfrom hier2start with parent is null connectby nocycle prior child =parent
group by hier2.name;
Connect by(属性数据结构)
拼接某些规则数据(红色可以使用递归分组拼接)
selectconnect_by_iscycle,sys_connect_by_path(child,"/") pathfrom hier2start with parent is null connectby nocycle prior child =parent
group by hier2.name;
Guid
sys_guid()
java语言用到UUID.randomUUID()
wm_concat函数
select wm_concat(C_CHANNELNO) from TB_CERTTYPEMAPPING
截取所有的C_CHANNELNO
存储过程异常信息+换行+哪行错误
DECLARE
V_RATENUMBER;--比例
V_RETINFOVARCHAR2(2000);--异常信息
BEGIN
SELECT 120/0INTO V_RATE FROM DUAL;
--异常处理
EXCEPTION WHENOTHERS THEN
V_RETINFO :=SQLERRM||CHR(10)||SUBSTR(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE,1,1000);--获取异常信息及异常被抛出的初始位置[行]
DBMS_OUTPUT.PUT_LINE(V_RETINFO);
END;
本机sqlplus
exp和 imp导入导出
1、EXP: (忽略 ignore=y )
有三种主要的方式(完全、用户、表)
1、完全:
EXPSYSTEM/MANAGER BUFFER=64000 FILE=C:\FULL.DMP FULL=Y
如果要执行完全导出,必须具有特殊的权限
2、用户模式:
EXPSONIC/SONIC BUFFER=64000FILE=C:\SONIC.DMP OWNER=SONIC
这样用户SONIC的所有对象被输出到文件中。
3、表模式:
EXPSONIC/SONIC BUFFER=64000FILE=C:\SONIC.DMP OWNER=SONIC TABLES=(SONIC)
这样用户SONIC的表SONIC就被导出
2、IMP:
具有三种模式(完全、用户、表)
1、完全:
IMPSYSTEM/MANAGER BUFFER=64000 FILE=C:\FULL.DMP FULL=Y
2、用户模式:
IMPSONIC/SONIC BUFFER=64000FILE=C:\SONIC.DMP FROMUSER=SONIC TOUSER=SONIC
这样用户SONIC的所有对象被导入到文件中。必须指定FROMUSER、TOUSER参数,这样才能导入数据。
3、表模式:
EXPSONIC/SONIC BUFFER=64000FILE=C:\SONIC.DMP OWNER=SONIC TABLES=(SONIC)
这样用户SONIC的表SONIC就被导入。
PL/SQL Developer过期的情况
1.输入指令“regedit”打开注册表
2.在注册表里按HKEY_CURRENT_USER\Software\AllroundAutomations 这个路径找到“Allround Automations ”,然后删除它。
3.删除上一步中的后,在找到HKEY_CURRENT_USER\Software\Microsoft\Security,删除“Security”。
4.这时候关闭注册表,在重新登陆PL/SQLDeveloper,这时候就可以重新用30天了。
windows plsql oracle 乱码
以前在进行oracle存储过程的编写过程中,当写中文语句的时候,对存储过程进行编译成功后,再重新打开这个文档,发现中文出现了乱码。这真是件抓狂的事情啊!在网上查找,很多信息抓住不到关键点,其实解决乱码的问题很简单,需要我们的PL/SQL Oracle客户端的字符集编码和Oracle数据库的字符集编码保持一致。
一:查看oracle数据库的字符集编码:
select * fromnls_database_parameters where parameter in ('NLS_LANGUAGE', 'NLS_TERRITORY','NLS_CHARACTERSET');
那么就需要我们修改ALS_LANG=AMERICAN_AMERICA_AL32UTF8
二:修改Oracle客户端的ALS_LANG的设置:
在电脑->属性->高级->环境变量->系统变量中新建:
变量名:NLS_LANG
变量值:ALS_LANG=AMERICAN_AMERICA_AL32UTF8
- oracle相关设置
- Oracle sqlplus 相关快捷键设置
- Oracle - Log buffer 的相关设置
- oracle学习笔记 logbuffer相关设置
- 数据库oracle,pgsq,mysql.相关设置
- oracle 设置OEM具体介绍及相关问题
- oracle学习笔记 字符集正确设置及相关操作
- 相关设置
- Oracle相关
- Oracle 相关
- oracle 相关
- oracle相关
- oracle 相关
- oracle 相关
- oracle 相关
- Oracle相关
- ORACLE 相关
- oracle 相关
- 45. Jump Game II
- 揭开软件行业毒瘤思杰马克丁的狰狞面目
- spring cloud中返回数据编码问题
- Python之路【第八篇】:堡垒机实例以及数据库操作
- RBAC 权限控制设计
- oracle相关设置
- H5六人牛牛源码合集代码分享
- sort 在字符串中的用法(洛谷di12题)
- 数据离散化的意义
- Import cv2 ImportError:DLL load failed:找不到指定模块 解决方法
- 利用LSTM预测股票日最高价
- 【Spring】SpringSecurity的过滤器执行流程
- 怎么用IDEA上传本地项目到码云/Github?
- Django报错403 Forbidden. CSRF token missing or incorrect的解决办法