
数据库
清水
这个作者很懒,什么都没留下…
展开
-
oracle查询结果字段为条件like值字段
以下是几种常见数据库(以 Oracle、MySQL 为例)中优化上述子查询并尝试获取满足条件的对应字段的思路,你可以根据实际使用的数据库环境进行调整。原创 2025-01-10 22:20:34 · 613 阅读 · 0 评论 -
wmsys.wm_concat 长度限制的问题
如:ORA-22813: 操作数值超出系统的限制或者ORA-06512: at "WMSYS.WM_CONCAT_IMPL", line 30。wmsys.wm_concat 和listagg 在函数实现字段合并的时候会有长度限制的问题,这样就的得到了没有字符大小限制的,可以直接拿来用的,用逗号拼接的字符串。网上查了一下方案,用sys_connect_by_path也没有解决。得到xmltype不好解析,可以先转成clob类型的,再用程序解析。有个问题,最后会多一个逗号,要自己处理一下。转载 2024-09-05 11:28:53 · 200 阅读 · 0 评论 -
Oracle身份证校验函数
18位身份证号码对身份证号码前17位与对应加权因子相乘求和并除以11的取余数,根据余数在校验码组[1,0,X,9,8,7,6,5,4,3,2]中获取校验码,获取的校验码如果与第18位不相同,则表示身份证号码校验码错误。验证位 Y = [1,0,10,9,8,7,6,5,4,3,2]转载 2024-07-31 09:39:39 · 810 阅读 · 0 评论 -
Oracle 通过15位或18位身份证号码计算年龄、出生年月日、性别
地址码(前六位数):表示身份证编码对象常住户口所在省份、地市,以及县(市、旗、区)的行政区划代码,1-2位数字表示所在地省、自治区、直辖市代码,第3、4位数字表示所在地地级市、盟、自治州代码,第5、6位数字表示所在地县(县级市、旗、区)的代码;出生日期码(第七位至十二位):表示身份证编码对象出生的年、月、日,年、月、日代码之间不用分隔符,比如670401代表1967年4月1日;出生日期码(第七位至十四位):表示身份证编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。转载 2024-07-31 09:29:27 · 853 阅读 · 0 评论 -
Oracle使用regexp_like报错ORA-12733 正则表达式太长
如果上述查询都无法确定确切的限制,可能需要查询数据库的日志文件或者做更深入的系统检查,这通常需要数据库管理员的帮助。请注意,由于Oracle版本的限制,一些视图和函数可能在不同的版本之间不兼容,或者不存在。如果以上方法仍然不能提供你需要的信息,建议查阅你的Oracle数据库版本对应的文档。请注意,这两个方法可能会返回应用的会话级或数据库全局的值,具体取决于你的配置和安全上下文。如果你确定并没有其他的会话设置,那么你可能需要联系你的DBA或者查阅Oracle文档以获取更多关于如何查看或修改此限制的特定信息。原创 2024-04-12 17:02:00 · 2630 阅读 · 0 评论 -
Oracle触发器同步带有clob字段的数据
在上述示例中,触发器会在 Table1 中的数据插入或更新时,将对应的 CLOB 数据同步到 Table2。当使用触发器更新另一张表时,包含 CLOB 类型字段的数据不会自动同步。你可以在触发器中使用这些过程和函数来读取、写入和更新 CLOB 类型字段的内容。:你可以编写一个自定义存储过程,该存储过程接收 CLOB 数据作为参数,并在触发器中调用这个存储过程来处理 CLOB 字段的数据同步。请根据实际情况修改触发器中表、字段名称和适当的条件,确保触发器逻辑正确并符合你的需求。原创 2024-02-29 17:05:31 · 676 阅读 · 0 评论 -
Oracle数据库同步clob字段数据
你可以根据具体的需求和预算选择适合自己的工具来完成 Oracle 数据库中包含 CLOB 字段的表的同步操作。:Oracle SQL Developer 是官方提供的免费数据库管理工具,也具有数据同步功能,可以处理包含 CLOB 字段的表的同步操作。:Toad 是一个广泛使用的 Oracle 数据库管理工具,它具有数据同步功能,能够处理包括 CLOB 在内的各种数据类型的同步。:这是一个功能强大的 Oracle 数据库比较和同步工具,支持结构和数据同步,包括对 CLOB 类型字段的同步。原创 2024-02-28 11:52:51 · 568 阅读 · 0 评论 -
mysql排序规则
在MySQL 5.7版本中,默认排序规则为utf8mb4_general_ci。在MySQL 8.0版本中,默认排序规则为utf8mb4_0900_ai_ci。由于utf8mb4_0900_ai_ci是MySQL 8.0引入的排序规则,因此将MySQL 8.0版本的表导入到MySQL 5.7或MySQL 5.6版本时,会存在字符集无法识别的问题。utf8 是 Mysql 中的一种字符集,只支持最长三个字节的 UTF-8 字符.MySQL的“utf8”实际上不是真正的UTF-8。转载 2023-06-24 08:51:34 · 2256 阅读 · 0 评论 -
mybatis中批量更新多个字段
2.如果同时有prefixOverrides,suffixOverrides 表示会用prefix,suffix覆盖Overrides中的内容。3.如果只有prefixOverrides,suffixOverrides 表示删除开头的或结尾的xxxOverides指定的内容。1.prefix,suffix 表示在trim标签包裹的部分的前面或者后面添加内容。在mybatis中批量更新多个字段。在Dao层接口方法定义同上。<trim>属性说明。转载 2023-06-24 16:50:32 · 1702 阅读 · 0 评论 -
evaluating expression ‘ew.sqlSegment != null and ew.sqlSegment != ‘‘ and ew. mybaties plus问题
使用方法2更换jdk版本,因为3.4.2版本中count返回的是integer类型,而不是long,降低mbplus版本要修改这部分代码。使用的jdk版本是1.8,替换mybatisplus版本:3.3.2改为3.4.1。方法2:mbplus 版本3.4.3.2 ,把jdk 改为1.8。情景:我电脑上能运行的项目,在同事电脑上运行会这个错误。方法1:jdk16,把mbplus 的版本降到3.4.2。原因:jdk版本与mybaties版本问题。删除class文件,重新编译。原创 2023-06-21 09:12:07 · 1038 阅读 · 0 评论 -
mybatis返回字段名大写问题
在select语句中设置返回map类型:resultMap="mapDemo",select语句中的字段名称要和map中的对应上,否则该字段仍然会返回全大写形式。mybatis如果不做区分大小写的设置的话,默认是不会区分大小写的,执行出的sql字段全部大写。设置select语句的返回类型为:resultType="com.demo.pojo.User"转载 2023-06-21 08:51:35 · 3399 阅读 · 0 评论 -
navicat连接mysql报错1130-host ... is not allowed to connect to this MySql server的解决办法
navicat连接mysql报错1130-host ... is not allowed to connect to this MySql server原创 2023-06-14 15:59:54 · 381 阅读 · 0 评论 -
Oracle 计算两个日期间隔的天数、月数和年数
计算年数,是通过计算出月数,然后再除以12;(也许会有更好的办法,目前还不知道)在Oracle中,两个日期直接相减,便可以得到天数;计算月数,需要用到months_between函数;转载 2023-03-30 18:14:54 · 9296 阅读 · 0 评论 -
ORACLE LONG类型转化成VARCHAR2函数
ORACLE LONG类型转化成VARCHAR2函数转载 2022-11-14 18:20:35 · 1397 阅读 · 0 评论 -
oracle排序取第二条
oracle排序后取第二条数据。转载 2022-08-01 16:46:48 · 4016 阅读 · 1 评论 -
ORA-30036:无法按8扩展段(在还原表空间xxx中)
1.什么是还原表空间?还原表空间即Undo表空间,是Oracle特有的概念,Undo表空间会自动分配Undo段,用来保存事务中DML( Insert、Update或Delete)语句的Undo数据。在Oracle9i前,管理Undo数据只能使用Rollback Segment。从Oracle9i开始,管理Undo数据不仅可以使用回滚段,还可以使用Undo表空间。而由于管理里规划回滚段太过复杂,Oracle10g已经弃用回滚段,仅使用Undo表空间来管理Undo数据。2.什么是Undo数据?Undo数转载 2022-01-01 12:34:56 · 829 阅读 · 0 评论 -
SqlServer查询重复数据
1.查询单列重复:select * from testwhere name in (select name from test group by name having count(name) > 1)2.查询多列重复:SELECT a.* FROM test a,(SELECT name,codeFROM test GROUP BY name,codeHAVING COUNT(1)>1) AS bWHERE a.name=b.name AND a.code=b转载 2021-12-22 11:24:02 · 4557 阅读 · 0 评论 -
Oracle中字符串截取
SELECT SUBSTR('Hello SQL!', 1) FROM dual --截取所有字符串,返回'Hello SQL!'SELECT SUBSTR('Hello SQL!', 2) FROM dual --从第2个字符开始,截取到末尾。返回'ello SQL!'SELECT SUBSTR('Hello SQL!', -4) FROM dual --从倒数第4个字符开始,截取到末尾。返回'SQL!'SELECT SUBSTR('Hello SQL!', 3, 6) FR.转载 2021-12-22 11:18:52 · 731 阅读 · 0 评论 -
plsql 表中字段及注释时为乱码
修改pl/sql developer 的编码格式:在windows中创 建一个名为“NLS_LANG”的系统环境变量,设置其值为“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,然后重新启动 pl/sql developer,这样检索出来的中文内容就不会是乱码了。如果想转换为UTF8字符集,可以赋予“NLS_LANG”为 “AMERICAN_AMERICA.UTF8”,然后重新启动 pl/sql developer。其它字符集设置同上...转载 2021-12-21 14:40:23 · 2238 阅读 · 0 评论 -
oracle查询当前用户的表名、表注释及所有字段
1、oracle 查询当前用户下的表名 + 表注释select t.table_name tableName, f.comments comments from user_tables t inner join user_tab_comments f on t.table_name = f.table_name2、oracle 查询某表的所有字段 + 字段注释 + 字段类型SELECT t.TABLE_NAME tableName, t.COLUMN_.转载 2021-11-23 23:14:25 · 4940 阅读 · 0 评论 -
新建视图、用户,并赋予该用户查询视图权限
一、需求数据库有个表car,需要为这个表建立一个视图view_car,并新建一个用户user01,赋予查询这个视图的权限二、实施步骤1、以管理员clgl登陆数据库,新建视图view_car:create or replace view view_caras select * from CAR;2、新建用户user01create user user01identified by "123456";3、授予用户user01权限grant select on view_c.转载 2021-11-23 22:22:40 · 921 阅读 · 0 评论 -
Cause: java.sql.SQLException: 无效的列索引
今天调试代码发现“Cause: java.sql.SQLException: 无效的列索引”,查资料得出结论如下:1、sql串的?号用''括了起来。例如:select* from user t WHERE t.id='?';处理方法:把'去掉就可以了。2、sql串的?号数目和提供的变量数目不一致:例如:select* from user t WHERE t.id= ? and t.name=?;如果sql里面有2个?号,入参只给不为两个,就会报错,3、sql串里的?号书写不正..转载 2021-10-29 11:19:11 · 4068 阅读 · 0 评论 -
SqlServer去重
--添加测试数据INSERT INTO [dbo].[students]([stu_name], [stu_gender], [stu_phone], [stu_birthday])VALUES('宋江', '1', '13142224589', '2002-05-01');INSERT INTO [dbo].[students]([stu_name], [stu_gender], [stu_phone], [stu_birthday])VALUES('宋江', '1', '13142224589',转载 2021-10-28 23:22:59 · 4434 阅读 · 0 评论 -
ORA-01858: a non-numeric character was found where a numeric was expected
一般是因为sql语句中,日期格式错误导致的。原创 2021-09-22 23:37:49 · 1835 阅读 · 0 评论 -
oracle的包含函数
instr(a.coloum,'1') > 0,大于0说明包含1,等于0说明不包含1原创 2021-09-22 23:10:44 · 6183 阅读 · 0 评论 -
Oracle dblink查看、创建、删除
1.查看dblinkselect owner,object_name from dba_objects where object_type='DATABASE LINK';或者select * from dba_db_links;2.创建dblink前提: 创建dblink的用户有对应的数据库权限 create public database link 或者create database link 可以使用grant create public database...转载 2021-09-14 01:03:37 · 3646 阅读 · 0 评论 -
oracle批量插入clob字段
ORA-01461: can bind a LONG value only for insert into a LONG columnType handler was null on parameter mapping for property '__frch_uid_0'ojdbc14.jar,对日期和clob类型有处理,查出来的是对象。ojdbc6.jar查询结果是字符串。方式一:不可以。原因:select 值 form dual,其中值的长度不能大于4000,如果是中文,长度不能大原创 2021-09-14 00:52:57 · 3027 阅读 · 0 评论 -
Oracle数据库中clob字段页面展示
方式一:sql语句处理select DBMS_LOB.SUBSTR(content,4000,1) || DBMS_LOB.SUBSTR(content,4000,4001) || DBMS_LOB.SUBSTR(content,4000,8001) || DBMS_LOB.SUBSTR(content,4000,12001) from xxx;方式二:java转String//oracle.sql.Clob类型转换成转载 2021-09-10 22:07:56 · 2472 阅读 · 0 评论 -
如何查看oracle数据库版本
SQL> select banner from sys.v_$version;原创 2021-09-10 00:31:31 · 1868 阅读 · 0 评论 -
oracle数据库版本对应的jdbc驱动
oracle数据库版本对应的jdbc驱动:原创 2021-09-10 00:14:29 · 501 阅读 · 0 评论 -
ORA-22835:缓冲区对于CLOB到CHAR转换或BLOB到RAWZ转换而言太小
问题描述:在使用decode函数时,提示不能里面不能用clob字段,所以用to_char转换,但是如果字符长度大于4000或汉字长度大于2000,就会报上面的错误。解决方式1:不使用decode函数,直接查clob类型字段,对查询的结果做判断。解决方式2(参考):对CLOB字段进行截取,使其在TO_CHAR之前获取的数据小于4000字符,这样在进行TO_CHAR时就不会报错了。select SUBSTR(XMLAGG(XMLELEMENT(E, AA|| ',')).EXTRACT('//原创 2021-09-10 00:06:37 · 3946 阅读 · 0 评论 -
ORA-30926: unable to get a stable set of rows in the source tables
原因是:在使用merger into 时,有重复数据导致的参考:Oracle 中用一个表的数据更新另一个表的数据最好的方法是用merge语法:mergeintotab1usingtab2on(tab1.id=tab2.id)whenmatchedthenupdatesettab1.val=tab2.val同样,如果tab2中有多条对应tab1中一条的情况会出错:ORA-30926: unable to get a stable set...转载 2021-07-31 09:14:04 · 5411 阅读 · 0 评论 -
在mybatis中做oracle 时间戳TIMESTAMP类型字段的比较
如果传过来的参数是日期类型则与数据库日期的格式对应即可;如果传过来的参数是字符串类型,则须做类型转换。代码如下:<if test="createTime != null"> AND CRAETE_TIME = TO_TIMESTAMP(#{createTime,jdbcType=TIMESTAMP}, 'YYYY-MM-DD HH24:MI:SS:FF6')</if>...原创 2021-07-13 18:48:00 · 1413 阅读 · 0 评论 -
ORA-01756: 引号内的字符串没有正确结束
ORA-01756: 引号内的字符串没有正确结束### SQL: MERGE INTO ### Cause: java.sql.SQLException: 索引中丢失 IN 或 OUT 参数:: 1; uncategorized SQLException for SQL []; SQL state [99999]; error code [17041]; 索引中丢失 IN 或 OUT 参数:: 1; nested exception is java.sql.SQLException: 索引中.原创 2021-07-05 09:33:07 · 1944 阅读 · 0 评论 -
ORA-12505, TNS:listener does not currently know of SID given
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor原创 2021-05-28 18:20:07 · 304 阅读 · 0 评论 -
Oracle数据库管理常用SQL
https://www.cnblogs.com/youseiraws/p/8598896.htmloracle 删除表空间及数据文件方法https://www.cnblogs.com/Alanf/p/9485550.htmlORA-02195:尝试创建的PERMANENT对象在TEMPORARY表空间中 怎么解决 具体步骤 https://zhidao.baidu.com/question/358706919.htmloracle ora-01652无法通过128(在表空间xxx中)扩展原创 2020-09-22 19:31:45 · 551 阅读 · 0 评论 -
Oracle调整SGA大小
select sessions_current,sessions_highwater from v$license; select SESSIONS_MAX ,SESSIONS_WARNING,SESSIONS_CURRENT,SESSIONS_HIGHWATER , USERS_MAX from V$license; SELECT ADDR,USERNAME FROM v$process WHERE USERNAME is not null SELECT PADDR,USE...转载 2020-09-27 15:34:51 · 446 阅读 · 0 评论 -
ORACLE 由于连接超时出现的错误
org.springframework.dao.RecoverableDataAccessException: ### Error updating database. Cause: java.sql.SQLRecoverableException: ORA-01089: 正在执行立即关闭 - 不允许进行任何操作 ### The error may involve package.class.method-Inline ### The error occurred while setting...原创 2020-08-01 16:00:02 · 5785 阅读 · 0 评论 -
Oracle数据库常用SQL
https://blog.youkuaiyun.com/maxracer/article/details/7962050Oracle ORA-00984: column not allowed hereOracle 实现select(查询)的结果集随机顺序展示https://blog.youkuaiyun.com/jian51868/article/details/53905910oracle四舍五入保留两位小数TO_CHAR(DIANJILV,'FM9990.00')TO_CHAR(JIAGE..原创 2020-09-23 18:01:30 · 345 阅读 · 0 评论