错误提示: 一个汉字占了三个字节,而不是两个,这跟字符集有关. 查一下字符集:select userenv('language') from dual; 结果显示,本机Oracle的字符集是UTF-8,32位,而不是GBK的16位.UTF-8的每个字符占3个字节(bytes),可以通过修改默认字符集来实现varchar2(2)存储一个汉字. 若此时数据库服务器已启动,则先执行SHUTDOWN IMMEDIATE命令关闭数据库服务器,然后执行以下命令: SQL>STARTUP MOUNT; SQL…
为纪念中华人民共和国建军90周年,特此一篇,以此纪念,我军威武!!! 一.问题背景 项目中商品发布,却没有保存成功. 二.问题定位 初步判断向数据库中保存时出现了错误,查看日志文件,由于日志文件过大就采用grep进行搜索(再一次说明grep 的强大) 其中 "ReserveProductService.update" 是要搜索的关键字,catalina.out是日志文件, -n 显示搜索内容所在行数, -B 2 是显示搜索内容的前两行(还有-C 前后几行,-A 后几行) 将2换成更大值…
在Oracle中可以使用JOB来实现一些任务的自动化执行,类似于UNIX操作系统crontab命令的功能.简单演示一下,供参考. 1.创建表T,包含一个X字段,定义为日期类型,方便后面的定时任务测试.sec@ora10g> create table t (x date); Table created. 2.创建存储过程p_insert_into_t,每次执行该存储过程都会向T表中插入一条系统当前时间.sec@ora10g> create or replace procedure p_inser…
在oracle 11g下测试了下varchar2与nvarchar2这两种类型,网上有很多关于这两种类型的区别的帖子,我还是自己测试了下. varchar2(size type),size最大为4000,type可为char或者byte,默认是byte. varchar2最多存放4000字节的数据,不管type是char还是byte.所以如果你设置varchar2(4000 char),你可以存入4000个字母,但是不能存入4000个汉字.如果数据库字符集编码是GBK,那么varchar2最多能…
今天在oracle 10g下测试了下varchar2与nvarchar2这两种类型,网上有很多关于这两种类型的区别的帖子,我还是自己测试了下. varchar2(size type),size最大为4000,type可为char或者byte,默认是byte. varchar2最多存放4000字节的数据,不管type是char还是byte.所以如果你设置varchar2(4000 char),你可以存入4000个字母,但是不能存入4000个汉字.如果数据库字符集编码是GBK,那么varchar2最…
关于 varchar2 的最大长度varchar2有两个最大长度:一个是在字段类型4000:一个是在PL/SQL中变量类型32767.这是一个比较容易出错的地方.因为在函数中可以声明长度超过4000的字符串变量,并且将它作为返回值,这里是不会提示编译错误的.这个函数平时都可以正常执行,而一旦这个字符串长度超过4000,函数执行就会出错. SQL> create or replace function funny return varchar2   2   is   3   v_yct varch…
返回处理后的数据,不同于round()(对数值进行四舍五入处理),该函数不对指定小数前或后的数值部分进行舍入处理. 语法:trunc(number[,decimals]) 其中,number为待做处理的数值,decimals为需要保留小数点后面的位数,即精度,默认值为0,此时将截去所有的小数部分. 数值处理: select trunc(123.45) as a,trunc(123.456,2) as b, trunc(123.45,-1) as c from dual ;…
CREATE OR REPLACE FUNCTION C2B (b IN CLOB default empty_clob()) RETURN BLOB -- typecasts BLOB to CLOB (binary conversion) IS res BLOB; b_len number := dbms_lob.getlength(b) ; dest_offset1 NUMBER := ; src_offset1 NUMBER := ; amount_c INTEGER := DBMS_L…
此SQL来自网络,地址见具体内容.介绍表空间回收原理的文章参考此链接: https://oracle-base.com/articles/misc/reclaiming-unused-space#shrink -- ----------------------------------------------------------------------------------- -- File Name : https://oracle-base.com/dba/monitoring/ts_e…
这两个相不相同是由参数NLS_LENGTH_SEMANTICS决定的,有两个单位,char(字符)或者字节(byte),该参数默认值为BYTE. alter session set nls_length_semantics=char; SQL> show parameter nls_length_semantics; NAME TYPE VALUE ------------------------------------ ----------- -------------- nls_length…