转自:https://blog.csdn.net/ccj2326051096/article/details/81938314 1.新建文本文件,修改后缀名为".udl" 2.双击文件3.点击提供程序根据目录选择你需要的。在这里因为我是MFC的程序,利用微软的OLE方式访问Oracle数据库,因此选择了如上图所示。 4.点击链接,填写数据源,和访问数据库的用户名和密码,点击测试连接,若提示链接成功,则点击确定,按照文本方式打开此文件,即可看见链接字符串。
分割单行数据 我们需要使用REGEXP_SUBSTR和REGEXP_COUNT两个ORACLE函数 function REGEXP_SUBSTR(string, pattern, position, occurrence, modifier)string:需要进行正则处理的字符串pattern:进行匹配的正则表达式position:起始位置,从第几个字符开始正则表达式匹配(默认为1)occurrence:标识第几个匹配组,默认为1modifier:模式(‘i’不区分大小写进行检索;‘c’区分大小写进行检索。默认为’c’) function REGEXP_COUNT (...
cdb得字符集是utf8,新建默认字符集pdb1,再修改pdb1字符集为16gbk,印证一下19c上cdb支持不同字符集pdb得特性。[oracle@vm3 ~]$ export ORACLE_SID=orcl [oracle@vm3 ~]$ dbca [oracle@vm3 ~]$ sqlplus / as sysdba SQL> select userenv(language) from dual; USERENV(LANGUAGE) ---------------------------------------------------- AMERICAN_AMERICA.AL32UTF8 SQL> show pdbs; CON_ID CON_NAME OPEN ...
最近,由于业务安全合规问题,协助客户重置oracle数据库用户的业务用户密码,其中业务 用户的密码想使用特殊字符如:@#%&;具体的密码如:Qaz!wsX@eDc1$。但是,由于@符 号是oracle数据库特殊的运算符,也是编程语言的特殊运算符,尽管,在数据库重置密码时, 业务用户密码重置成功,虽然数据库侧经过特殊处理能正常登陆,但是业务测试却无法连接。常规方法无法直接登陆 ? 数据库服务器端特殊处理后可以正常登陆应用链接不上数据库...
在oracle中,有时候需要对时间格式的字符串进行排序 比如说有个字段是TEST_TIME是varchar类型的,但是需要通过它对数据进行排序,就需要对字段进行to_date转换。但有时候数据中会出现脏数据(不能转换为date的数据)。导致报错。报错如下显示: 因此需要把脏数据给排除掉或者找出来删除掉。 因此需要写一个function把不能转换位日期的字符串找出来。思路就是把字符串转换为日期,如果成功就返回Y,如果报错,就返回N function如下显...
在oracle中,要判断一个字符串是否包含另一个字符串,可以有三种方法。 方法1:使用通配符%。 通配符也就是模糊匹配,可以分为前导模糊查询、后导模糊查询和全导匹配查询,适用于查询某个字符串中是否包含另一个模糊查询的场景。select * from user where hobby like %yanggb%;使用的场景局限于找到hobby中存在yanggb的记录(hobby可以为多个以逗号隔开的值),反之不行。 方法2:使用contains函数。 oracle内置了一个contains函数...
2020年12月18日 周五 09:22 (北京) 晴 0℃~-9℃ 3-4级转<3级风 ---1.创建一个type,返回table类型 CREATE OR REPLACE TYPE ty_str_split IS TABLE OF VARCHAR2(6000); / ---2.创建一个分割的函数,主要对json进行按照固定割串分割 CREATE OR REPLACE FUNCTION fn_split (p_str IN VARCHAR2, p_delimiter IN VARCHAR2) RETURN ty_str_split IS j INT := 0; i INT := 1; len INT := 0; len1 INT := 0; ...
不同的数据库,相应的字符串拼接方式不同,通过对比加深一下记忆。 一、MySQL字符串拼接1、CONCAT函数语法格式:CONCAT(char c1, char c2, ..., char cn) ,其中char代表字符串,定长与不定长均可以 1.1)连接两个字符串1.2)连接多个字符串2、"+"操作符2.1)连接两个字符串2.2)连接多个字符串3、假如其中一个字段为NULL,则用结果用空格代替NULL。二、Oracle字符串拼接1、CONCAT函数 语法格式:CONCAT(char c1, char c2) ,...
Oracle数据库的两个字段值为逗号分割的字符串,例如:字段A值为“1,2,3,5”,字段B为“2”。想获取两个字段的交集(相同值)2,获取两个字段的差集(差异值)1,3,5。 一、最终实现的sql语句 1、获取交集(相同值):select regexp_substr(id, [^,]+, 1, rownum) id from (select 1,2,3,5 id from dual) connect by rownum <= length(regexp_replace(id, [^,]+)) +1 intersect -- 取交集 select regexp_substr(id, [^,]+, 1, rownum...
内容导航:前言 1、概述 2、定义前言NO Name Description1 ASCII() Return numeric value of left-most character2 BIN() Return a string containing binary representation of a number3 BIT_LENGTH() Return length of argument in bits4 CHAR()
测试数据 --单条数据 with z_branch as(select 'BR1001' brid, 'BR1001.BR1002.BR1003' br_level from dual ) select * from z_branch;--多条数据 with z_branch as(select 'BR1001' brid, 'BR1001.BR1002.BR1003' br_level from dualunion allselect 'BR1002' brid, 'BR1002.BR1003' br_level from dualunion allselect 'BR1003' brid, 'BR1001.BR1003' br_level from dual ) select * from z_branch;1. 单个字符串或单条数据拆分...
Oracle 字符集常见字符集及解决方案 ?Oracle 字符集常见字符集及解决方案 优先级别:alter session>环境变量>注册表>参数文件 一.查看字符集: 1.查询服务端字符集: select userenv(language) from dualor select * from nls_database_parameters 2.查询客户端: select * from nls_instance_parameters 客户端字符集与服务端字符集不一致就会出现乱码等问题 3.会话字符集: select * from nls_session_parameters二.修改字符集:...
需求 用户名:zhzx,密码:zhzx@2020,通过OTL C++组件访问,构建连接字符串:zhzx/zhzx@2020@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.10.10)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)))提示错误 ORA-12154: TNS: 无法解析指定的连接标识符解决方案 密码中的@前面添加\,最终字符串如下:zhzx/zhzx\@2020@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROT...
Oracle 字符串拼接 “||” 拼接 这个相当于java里面的 “+” 号 SELECT origin_code||'000000' CODE FROM t_origin t WHERE t.leaf='0' AND t.origin_code LIKE '44%00'; 输出结果:concat() 函数 采用CONCAT进行连接,CONCAT()只允许两个参数;换言之,一次只能将两个字串串连起来(如果需要拼接多个字符串,可以进行嵌套) SELECT CONCAT(origin_code,'000000') CODE,t.* FROM t_origin t WHERE t.leaf='0' AND t.origin_code L...
1. 字符串---正则select regexp_substr(1,2,3,[^,]+,1,1) result from dual; param1:源串 param2:正则表达式 param3:匹配开始位置,从1开始 param4:匹配模组/元组的第几个 select REGEXP_COUNT(1,2,3,5,[^,]+,1) result from dual; 返回根据正则匹配到的模组/元组的个数 param1:源串 param2:正则 param3:开始位置