![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Oracle
醉梦洛
后来,我总算学会了。。。
展开
-
MySQL中CONCAT()函数用法详解
需求:需要将将俩字符串拼接在一起1.MySQL中CONCAT()函数拼接字符串CONCAT(str,str2,str3...) 可以将两个或者多个参数拼接在一起注意事项:①返回结果为连接参数产生的字符串。②如有任何一个参数为NULL ,则返回值为 NULL。2.对比其它数据库中拼接字符串的用法①Oracle字符串连接使用“||”进行字符串拼接,其使用方式和MSSQLServer中的加号“+”一样SELECT '房间号:' || NO || '单价:' || pri.原创 2020-08-26 14:34:33 · 23664 阅读 · 0 评论 -
Oracle环境下的用户访问另一个用户下的表
1.首先保证双方用户之间的网络是通的检查方法:ping 另一个用户的网络IP 或 telnet 另一个网络的IP 端口ping完或者telnet完具体显示什么百度!!!2.然后最重要的就是找俩用户之间的Database links工具:PL/SQL 或者Toad 或者SQL Tools 或者 SQL Developer 或者sql*plus附件==》...原创 2020-01-08 11:17:18 · 1688 阅读 · 0 评论 -
Oracle环境下校验身份证的函数
1.由于业务要求,需要再触发器中定制一个身份证的校验过程,特此校验2.脚本部分CREATE OR REPLACE FUNCTION fn_checkidcard (p_idcard IN VARCHAR2) RETURN INTIS v_regstr VARCHAR2 (2000); v_sum NUMBER; v_mod N...原创 2019-12-31 09:33:45 · 617 阅读 · 2 评论 -
Linux环境下启动或停止Oracle监听
一、所用工具:Oracle11g,Xshell5二、命令:1.使用xshell连接上安装了oracle服务的linux服务器,然后输入命令su - oracle切换到oracle用户2.检查oracle监听服务运行状态,输入lsnrctl status命令来查看,看到提示信息TNS:no listener,表示监听没有启动3.监听没有启动,则需要输入lsnrctl s...原创 2019-12-28 18:03:21 · 3556 阅读 · 2 评论 -
Oracle数据库服务重启(命令行执行)
首先打开cmd命令行;先执行 sqlplus /nolog;(出现这个即为正确)再执行 conn sys / as sysdba ;(口令是你登录数据库时输入的密码)(出现这个即为正确)再执行 shutdown immediate ;(出现这个即为正确)最后执行 startup ;(出现这个即为正确)这就OK了。。。...转载 2019-12-27 11:27:15 · 196 阅读 · 0 评论 -
Oracle触发器-校验身份证和字节长度
一、Oracle触发器的一个简单介绍:触发器:是特定事件出现的时候,自动执行的代码块。类似于存储过程,但是用户不能直接调用他们。功 能: 1.允许、限制对表的修改 2.自动生成派生列,比如自增字段 3.强制数据一致性 4.提供审计和日志记录 5.防止无效的事务处理 6.启用复杂的业务逻辑触发器的...原创 2019-12-26 19:26:45 · 1180 阅读 · 0 评论 -
Oracle的数据类型varchar2(4000)超过4000怎么办?
实际在工作中操作数据库时,存个超过4000个字节的文本或者字符串都是很正常,如果在平常测试或者自己写着玩一下,最好的办法肯定是修改数据类型。但是如果在生产上,很多人就傻眼了,字段的数据类型万万是不能改的,谁能保证改了之后不影响生产平台的运行。所以接下来咱们谈谈这个炙手可热的问题:1.学习或者测试阶段 ①.有朋友说,他做的公告拦里从word复制的内容(包括表格这些)到网页上...原创 2019-11-04 18:18:06 · 9801 阅读 · 0 评论 -
关于Oracle中存储过程的一个分析
根据业务需求,需要备份数据,所以通过存储过程进行处理最好,这样能保证每天的数据是最新的create or replace procedure SP_SJBG_DAY_JOB is dd varchar2(10); --参数一 sdd varchar2(10); --参数二 bReturn boolean; begin --查找T209_DB_TBSPTXNO...原创 2019-10-13 17:11:16 · 204 阅读 · 0 评论 -
merge into 对同一张表进行更新和插入
Merge into是Oracle 9i引入的功能问题来源:在插入表中数据时,需要检查这个表中是否已经存在这条数据,如果有则进行更新,如果没有则进行插入。那么问题来了,都有哪些方式可以实现:1.用简单的办法:①先查询 select count(1) from dual where XXX;②在进行插入或者更新2.用sql server中的一个办法if exists(s...原创 2019-08-01 20:36:07 · 4900 阅读 · 0 评论 -
Oracle中purge的用法
一、工作中遇到的一些小惊喜 1.最近在生产上修改别人脚本时,发现在清除表时用purge很多,之前只知道它是清楚表,表空间,表索引的,通过查找,发现 了它的很多妙用。 2.它和truncate有一拼,都是删完表后,不能回滚,直接释放资源的那种,它是可以直接清除表以及表所在的表空间了。 3.比drop最大区别就是在于是否提交,回滚,清除回收站残留资源二、sq...原创 2019-08-29 19:33:49 · 5739 阅读 · 2 评论 -
关于PL/SQL创建定时任务且定时执行存储过程
最近工作中需要,在一个报表中需要实时展示数据。但业务人员的意思是(T-1)天就ok,即要能查看到sysdate-1天的数据。首先新建一个Demo:1.先创建一个简单的表create table t_syp(time date,time2 timestamp(6))2.再创建一个存储过程create or replace procedure proc_syp as ...原创 2019-09-14 20:59:05 · 2147 阅读 · 0 评论 -
Oracle触发器用法
一、触发器简介触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行。因此触发器不需要人为的去调用,也不能调用。然后,触发器的触发条件其实在你定义的时候就已经设定好了。这里面需要说明一下,触发器可以分为语句级触发器和行级触发器。详细的介绍可以参考网上的资料,简单的说就是语句级的触发器可以在某些语句执行前或执行后被触发。而行级触发器则是在定义的了触发的表中的...转载 2019-09-15 10:54:05 · 204 阅读 · 0 评论 -
Oracle定时执行存储过程之策略
根据业务需求,需要实时展示代发工资报表数据,并且是需要纯SQL处理,不能通过程序处理,然后就需要用到定时任务和存储过程,数据在Oracle中,所以以下为PLSQL操作过程:一.第一种情况也是最符合业务需求的方法1.存储过程中调用存储过程,定时执行 意思就是你可以先写好一个存储过程用来处理你的业务需求,然后再写一个存储过程用来定时执行之前的那个存储过程。这样的话,比较...原创 2019-09-17 14:16:25 · 449 阅读 · 0 评论 -
Oracle基础语法总结
在此的总结肯定不全面,因为以下记载都是我不太熟悉的或者模棱两可的。1.求平均值是需要注意空值处理 select sum(comm),avg(nvl(comm,0)),count(ename) fromemp; 注:nvl(字段名,0)语法 如果你某个字段为空,但是你想让这个字段显示0,nvl(字段名,0),就是当你选出来的时候,这个字段虽然为空,但是显示的是 0,当...原创 2019-09-17 23:00:46 · 149 阅读 · 0 评论 -
MySQL和Oracle的区别
由于SQL Server不常用,所以这里只针对MySQL数据库和Oracle数据库的区别(1) 对事务的提交 MySQL默认是自动提交,而Oracle默认不自动提交,需要用户手动提交,需要在写commit;指令或者点击commit按钮(2) 分页查询 MySQL是直接在SQL语句中写"select... from ...where...limit x, y",有limit就可...转载 2019-09-18 18:47:55 · 98 阅读 · 0 评论 -
Oracle中存储过程中变量的声明与赋值
一.首先变量的声明有3中方式1.按数据类型进行声明①直接声明数据类型②格式:变量名 数据类型(大小)V_TEST varchar2(20);V_NUM number;注:存储过程中声明变量必须在begin之前 并且声明字符串时必须指定大小,不然会报错2.使用%TYPE声明①格式:变量名 表名.字段名%TYPE②含义:该变量的数据类型与指定...原创 2019-09-23 22:17:18 · 19451 阅读 · 0 评论 -
oracle 中超详细的游标用法
游标的概念: 游标是SQL的一个内存工作区,由系统或用户以变量的形式定义。游标的作用就是用于临时存储从数据库中提取的数据块。在某些情况下,需要把数据从存放在磁盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或最终写回数据库。这样数据处理的速度才会提高,否则频繁的磁盘数据交换会降低效率。游标有两种类型:显式游标和隐式游标。在前述程序中用到的SELECT...INTO...查询语...转载 2019-09-23 23:41:20 · 581 阅读 · 0 评论 -
Oracle,Mysql,SqlServe取出前10条记录
1.Oracle中拿到前10条记录select * from table1 where rownum<=10 --效率不高select * from (select * from tb_user where rownum<=2*2) minus (select * from tb_user where rownum<=1*2)select * from(se...原创 2019-07-12 09:13:00 · 946 阅读 · 0 评论 -
用不同版本的PL/SQL导出insert语句
一、由于生产需要,更新最新脚本,需要把查出来的生产上的数据导成insert 语句,方便以后维护用,那么问题就来了,生产上的PL/SQL比较老,或者版本陈旧,下面不同版本都瞅瞅吧:1.本地的PL/SQL工具:①第一种方法: 写好查询语句,等查出数据后,如下操作就ok了② 第二种方法:找到你要导出insert语句的表--》Export data 或者 工具栏【T...原创 2019-07-15 18:12:34 · 2497 阅读 · 0 评论 -
Oracle中查询当前数据库中的所有表空间
直接上命令: SQL>col file_name for a60;SQL>set linesize 160;SQL>select file_name,tablespace_name,bytes from dba_data_files;效果图如下:原创 2018-08-10 16:39:36 · 19352 阅读 · 2 评论 -
PL/SQL中创建表空间
创建数据表空间 create tablespace YSD_DATA datafile 'E:\Orcl\YSD_DATA_tablespace.dbf' size 100m autoextend on next 32m maxsize 2048m 注:YSD_DATA 是表空间名称E:xxxxx.dbf 是你表空间数据的存放地址和文件名称size 1...原创 2018-08-02 11:22:10 · 228 阅读 · 0 评论 -
Oracle中报ORA-03113:通讯通道的文件结尾 进程:ID:73740 会话:ID:604 序列号:21415
我的Oracle数据库是去年11月份安装的,然后安装好之后配置了一下,那个时候是正常的,没有什么问题,但是后来我就一直没有用自己本地的Oracle,使用的PL/SQL一直连的是同事的机子,然后今天突然想在自己的机子上做些测试,PL/SQL居然一直连不上,提示了下面这个错误。 提示ORA-03113:通信通道的文件结尾进程 ID :0会话 ID:0 序列号:0 之后就是一系列的度娘...转载 2018-09-16 09:55:28 · 6701 阅读 · 0 评论 -
ORA-12571:TNS:包写入程序失败
以下都是摘自互联网,暂未证实。 今天登陆至一个数据库,遇到了ORA-12571,网上很多仁兄们总结过,大部分是关于服务器端参数文件SQLNET.ORA中SQLNET.AUTHENTICATION_SERVICES设置导致,于是把查到的资料稍作了整理。针对服务器端SQLNET.AUTHENTICATION_SERVICES参数进行修改。参数使用示例:SQLNET.AUTHENTICATION...转载 2018-09-16 10:08:13 · 16024 阅读 · 0 评论 -
Oracle报ORA-00933:SQL 命令未正确结束
出现这种情况的原因:使用了含有ORDER BY或INNER JOIN子句的INSERT、DELETE语句 使用了含有INNER JOIN子句的UPDATE语句 使用了条件中含有自连接表字段比较的Triangular Join 解决方案: 在两句sql中,每句以英文的逗号分隔即可。 ...原创 2018-09-13 14:29:29 · 81783 阅读 · 14 评论 -
关于Excel中的数据通过plsql导入Oracle中
在Excel编写的数据或者别人给的数据,准备添加到Oracle中的表中,由于工作需要,如果一条一条insert into 太费时间,所以只能整张表数据导入了。步骤如下:1.首先拿到Excel数据,另存为一份.txt文件 2.进入plsql,找到工具---》文本导入器3.打开数据文件,找到你保存的txt文件,打开就ok了 4.进入第一个来自文本文件的数据5.进...原创 2018-09-21 15:37:39 · 14434 阅读 · 0 评论 -
PL/SQL Oracle恢复默认界面设置
中文:工具->首选项->用户界面->外观->最下面有一个复位停放 可以快速回复到默认设置英文:tools->Preferences->UserInterface->Appearance->Reset docking...转载 2018-10-13 11:25:39 · 1751 阅读 · 0 评论 -
Oracle中根据注释来查表名
首先在oracle中因为平常所用的用户比较多,用户底下表又很多,并且表的字段很多的情况下,找一个具体的字段对于不熟悉这个表的人来说,找起来有点盲目。所以就需要根据一点小条件来全局搜索上代码:select * from user_tab_comments where comments like '%摘要%'按照sql的条件来看,就是根据你知道的注释来找表喽! ...原创 2019-01-12 16:19:41 · 6762 阅读 · 0 评论 -
Oracle的Cast的用法
转自:https://blog.csdn.net/ziwen00/article/details/8685858 经常在前辈们的SQL中可以看到CAST,例如: WITH T AS(SELECT LEVEL||' ' L FROM DUAL CONNECT BY LEVEL<=5),A(A,V) AS(SELECT CAST(L AS VARCHAR(30)),1 FROM T...转载 2019-01-18 18:28:45 · 368 阅读 · 0 评论 -
Oracle中group by和having和where之间的细微之处
1.group by首先单纯的就group by 来说吧,分组函数,它一般是和聚合函数配合使用的,但是它有一个重要的原则需要你记住就是==》在查询时select 和from之间=用到的所有列(字段)中,没有使用聚合函数的列,必须出现在 group by 后面,如下:错误写法: select 字段1,字段2 from table group by 字段1 正确写法...原创 2019-01-24 12:05:26 · 1395 阅读 · 2 评论 -
Oracle中时间相互转换
1.转字符串类型select sysdate from dual; --获取Oracle系统时间 转你想要的字符串格式的时间:select to_char(sysdate,'yyyy-MM-dd HH:mm:SS') from dual; --Oracle系统时间转字符串2.转Date类型①字符串转dateselect to_date('2019-...原创 2019-01-08 18:00:01 · 3133 阅读 · 0 评论 -
Oracle中整表数据填充和备份表
1.整表数据填充Insert into 表1 select *from 表2 注:前提是表1和表2的表结构相同2.首先你要查询你的表中有没有数据,考虑到你备份表时需不需要连数据一块备份过去,还是只是备份一个表的表结构如:create table 要备份的表名 as select *from 原表名 where 1=0;注:①.要备份的表名--》可以用原表名_bac...原创 2019-01-20 20:58:16 · 872 阅读 · 0 评论 -
Oracle中的字符函数
字符函数包括两大类:大小写控制函数,字符控制函数1.大小写控制函数LOWER():转为小写UPPER():转为大写INITCAP():有多个字母时,会将首字母变成大写,其余小写效果图:2.字符控制函数concat('Hello','World') 拼接字符串①.效果图:②.substr('HelloWorld',1,5) 截取字符串效...原创 2019-01-21 21:31:45 · 372 阅读 · 0 评论 -
数据库优化方面的总结
1.distinct用于查询过滤时,查询出来的相应字段数据是没有重复的。例子:select distinct(name) from emp /*--去掉重复记录--*/2.聚合函数一般用在from前面,在后面的时候是在having 后面使用,而不在where后面使用3.设置表的字段长度,一定要在jsp页面做限制(或者在实体上做限制),肯定字数不能超过数据库表中字段的长度。4.使用...原创 2019-02-01 09:45:50 · 264 阅读 · 0 评论 -
图解SQL的inner join、left join、right join、full outer join、union、union all的区别
对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章,通过文氏图 Venn diagrams 解释了SQL的Join。我觉得清楚易懂,转过来。假设我们有两张表。Table A 是左边的表。Table B 是右边的表。其各...转载 2019-02-15 11:31:37 · 148 阅读 · 0 评论 -
Oracle中关于编辑表时锁死和不锁死的情况
一、编辑时锁死情况1.首先比较常见的在Oracle中,你用PL/SQL工具编辑表时,就会造成表的锁死如图示例:也就是说在你关闭之后,别人才能操作注:这种情况只有在你关闭之后,别人才能操作这个表,不然就会一直处于锁死状态2.用sql命令编辑表,造成表的锁死select * from 表名 t for update图示:第一、二、三、四步:编辑~提交...原创 2019-04-11 11:11:02 · 704 阅读 · 0 评论 -
Oracle中批量处理增加唯一性字段的值
1.今天突然平台测试环境下的数据没了,原来是昨晚我这边程序测试在文件入库时执行了清库,造成的。所以从另一张表中取了几条必填数据,其他字段可以写成固定数据,然后再次造100条数据那么问题来了,表中的主键你特么要注意啊,不然很坑的,之前有保存两条数据,那么除过几条必填的,其他的按照原有的文件数据复制上就好了;脚本分析下:insert into dfgz_pkgmx(in_time...原创 2019-05-22 15:10:09 · 812 阅读 · 0 评论 -
在Oracle中字段类型设置为clob时,报 ORA-01704:字符串文字太长
单独的在Oracle的表中把字段的数据类型设置为clob后,用insert into 往里面插入数据的时候,当往里面插入的字节小于2000时是可以正常插入的,当插入的数据大于2000个字节的时候就会报 ORA-01704:字符串文字太长 解决办法: Declare V_LANG CLOB; BEGIN V_LAN...原创 2018-08-01 16:45:37 · 5811 阅读 · 2 评论