![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库知识学习
winingblog
想要重新开始,开始努力,开始好好生活,希望每一天都有进步,每一天都有阳光!
展开
-
mysql高级-架构介绍
从上到下四层架构:Sql执行顺序:人工是从上往下,机器是从from后面开始,select在最后。原创 2021-08-27 09:09:51 · 79 阅读 · 0 评论 -
sql性能优化
书写一致性 和 绑定变量A.字符级的比较,如空格,大小写B.两个语句所指的对象必须完全相同C.两个SQL语句中必须使用相同的名字的绑定变量不同区域出现的相同的Sql语句,要保证查询字符完全相同,以利用SGA共享池,防止相同的Sql语句被多次分析。select * from emp a where e.empno=:1;select * from emp b where b.empno=:1;多表连接注意使用表的别名(Alias)当在SQL语句中连接多个表时, 请使用表的别名并把别名前缀于.原创 2021-07-29 17:42:42 · 289 阅读 · 0 评论 -
处理oracle锁表
select 'exec sys.kill_session('||a.SID||','||a.SERIAL#||');',a.sid,a.serial#,c.spid,a.username,d.OBJEXT_NAME,a.status,a.program,b.id1,b.id2,b.ctime,from v$session a,v#lock b,v$process c,all_objects dwhere b.id1=d.object_idand a.sid=b.sidand a原创 2021-05-18 17:12:15 · 226 阅读 · 0 评论 -
oracle存储过程中拼接sql给游标 ,拼接字符串多加了2个单引号解决标识符无效的报错问题
1、定义了一个函数,有四个变量,是哪个字符串类型,测试的时候是没有问题,但是调用的时候一直报无效字符。这里测试没有问题但是调用就报错select PKG_EFFIC_MONTH.calcu_month('11','202004','GD0001',1) from dual;一直提示无效字符,后来发现好像这样的字符串在调用的时候解析不了,于是改成下面这样就可以了百度了是这样...原创 2020-05-27 16:47:28 · 687 阅读 · 0 评论 -
oracle查询数据库表字段
SELECT t.TABLE_NAME,t.COLUMN_NAME,t.DATA_TYPE,t.DATA_LENGTH,c.COMMENTS FROM USER_TAB_COLUMNS t,user_col_comments c where t.TABLE_NAME=c.TABLE_NAME and t.COLUMN_NAME=c.COLUMN_NAME and t.TABLE_NAME in ('W_WORK_BASIS','W_SEND_WORK','W_ORDERS_WORK','W_...原创 2020-05-27 09:37:26 · 233 阅读 · 0 评论 -
oracle客户端和plsql安装
1、oracle安装的时候要选择管理员,而不是第一个默认的仅安装客户端,因为选了第一个之后找不到oracle的配置文件tns的位置。2、plsql安装路径里不能有括号,需要手动去掉。运行的时候要选择以管理员身份运行,否则会弹出空白的弹框。...原创 2020-03-30 17:29:09 · 241 阅读 · 0 评论 -
linux重启数据库
(1) 以oracle身份登录数据库,命令:su – oracle(2) 进入Sqlplus控制台,命令:sqlplus /nolog(3) 以系统管理员登录,命令:connect / as sysdba(4) 启动数据库,命令:startup(5) 如果是关闭数据库,命令:shutdown immediate(6) 退出sqlplus控制台,命令:exit(7) 进入监听器控制台,命令:lsnr...转载 2018-04-22 08:56:59 · 12013 阅读 · 0 评论 -
解决导出表不全问题
今天在做迁移数据库,从11.2.0.1迁移到11.2.0.4,用exp导出一个用户下所有的对象,在做imp导入的时候发现表少了很多,看日志后分析是部分空表没有导出。在网上查了一下,发现是11G中新特性,当表无数据时,不分配segment,以节省空间。而使用exp命令时,无Segment的表不会被导出。 解决方案的文章: http://wenku.baidu.com/view/7beb...转载 2018-04-22 08:57:14 · 1075 阅读 · 0 评论 -
oracle管道函数的用法
oracle管道函数的用法oracle数据库中的管道函数以一个空的RETURN 语句结束,以表明它已经完成。下文对oracle管道函数的用法作了详细的说明,供您参考。oracle管道函数是一类特殊的函数,oracle管道函数返回值类型必须为集合,下面就为您将介绍oracle管道函数的语法,供您参考学习。在普通的函数中,使用dbms_output输出的信息,需要在服务器执行完整个函数后一次性的返回给...转载 2018-04-22 08:57:30 · 1223 阅读 · 0 评论 -
oracle管道(pipelined_function)函数用法
Oraclepipelined function)piperow管理函数 oracle数据库中的管道函数以一个空的RETURN 语句结束,以表明它已经完成。下文对oracle管道函数的用法作了详细的说明,供您参考。 oracle管道函数是一类特殊的函数,oracle管道函数返回值类型必须为集合,下面就为您将介绍oracle管道函数的语法,供您参考学习。 在普通的函数...转载 2018-04-22 08:57:56 · 3107 阅读 · 0 评论 -
管道函数示例
create or replace type rang_date_tbl_type as table of date;create or replace function get_range_date(from_dt date default null,to_dt date default null) return rang_date_tbl_type pipelined is start_dt ...转载 2018-04-23 12:41:49 · 854 阅读 · 0 评论 -
Oracle中查询该表中的主键被哪些表引用,该表中的外键来源于哪些表
Oracle中查询该表中的主键被哪些表引用的SQL语句select c.TABLE_NAME from all_constraints p, all_constraints cwhere p.table_name = '表名' and p.OWNER = SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA') and c.OWNER = SYS_CO...转载 2019-05-25 13:49:06 · 342 阅读 · 0 评论 -
mybatis动态代理学习——来自《mybatis从入门到精通》
原创 2019-05-27 18:19:46 · 91 阅读 · 0 评论 -
mybatis动态sql
原创 2019-05-28 15:17:51 · 81 阅读 · 0 评论 -
oracle查询表的约束
1.查询出所有表的唯一键约束的 禁用sqlselect 'alter table ' || table_name || ' disable constraint '||constraint_name||';'from user_constraints where constraint_type='U';如下:alter table SYENTINFO2 disable constraint...转载 2019-06-03 16:07:23 · 5190 阅读 · 0 评论 -
获取时间(24小时,一个月天数等)
-- 获取24小时select to_char(to_date('20150202', 'yyyy-mm-dd hh24:mi:ss') + (rownum - 1) / 24, 'hh24') from dualconnect by rownum <= 24--获取当前月的天SELECT TO_CHAR(TO_DATE('20150...原创 2018-04-22 08:56:33 · 488 阅读 · 0 评论 -
利用dblink复制用户下所有的表
declare cursor cur is select t.TABLE_NAME, c.comments from user_tables@sdgdfw t, user_tab_comments@sdgdfw c where t.TABLE_NAME = c.table_name; table_count number := 0; cursor col_cur is...转载 2018-04-22 08:56:17 · 1178 阅读 · 0 评论 -
常见的SQL优化方案
转载地址:https://my.oschina.net/serve/blog/8525011。你必须选择记录条数最少的表作为基础表. (from 是从前往后检索的,所以要最少记录的表放在最前面)2。采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些 可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。同时在链接的表中能过滤的就应该先进...转载 2018-04-23 12:42:56 · 151 阅读 · 0 评论 -
oracle查看表是否被锁
Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程等操作,那么这些操作是怎么实现的呢?本文我们主要就介绍一下这部分内容。(1)锁表查询的代码有以下的形式:select count(*) from v$locked_object;select * from v$locked_object;(2)查看哪个表被锁select b.owner,b.object_name,a.sessi...转载 2018-04-20 12:36:57 · 20775 阅读 · 0 评论 -
oracle的dblink创建及使用
create database link trps_link connect to trps identified by trps using '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.119.92.103)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) ...转载 2018-04-20 12:38:44 · 141 阅读 · 0 评论 -
oracle创建directory
create directory dump_testamber2 as '/home/oracle/amber2dmp'; grant read,write on directory dump_testamber2 to public;转载 2018-04-20 12:39:58 · 16903 阅读 · 0 评论 -
oracle日期相加减
加法 select sysdate,add_months(sysdate,12) from dual; --加1年 select sysdate,add_months(sysdate,1) from dual; --加1月 select sysdate,to_char(sysdate+7,'yyyy-mm-dd HH24:MI:SS') from dual; -...转载 2018-04-20 12:46:26 · 2373 阅读 · 0 评论 -
start_with_connect_by
分层查询中的start with和connect by怎么用 ORACLE是一个关系数据库管理系统,它用表的形式组织数据,在某些表中的数据还呈现出树型 结构的联系。例如,我们现在讨论雇员信息表EMP,其中含有雇员编号(EMPNO)和经理(MGR)两例,通过这两列反映出来的就是雇员之间领导和被领导 的关系。有些雇员领导另一些雇员,有些雇员被领导,还有些雇员领导一些人又被别人领导,他们之间的这种...转载 2018-04-20 12:48:40 · 99 阅读 · 0 评论 -
Oracle中trunc函数、round_函数、ceil函数和floor函数的使用
Oracle中trunc函数、round 函数、ceil函数和floor函数的使用1.1trunc函数处理数字trunc函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。其具体的语法格式如下TRUNC(number[,decimals])其中:number 待做截取处理的数值decimals 指明需保留小数点后面的位数。可选...转载 2018-04-20 12:50:48 · 352 阅读 · 0 评论 -
查询表里重复记录并删除
select obj_id from ct_arch_mark group by obj_id having count(obj_id) > 1;delete from ct_arch_mark where obj_id in (select obj_id from ct_arch_mark group by ...转载 2018-04-20 12:52:23 · 66 阅读 · 0 评论 -
创建定时任务
--创建任务declare jobno number;begin dbms_job.submit(jobno,--任务号 what => 'test_pck.t_pro;',--执行过程的名称 next_date => sysdate,--开始执行时间 Interval ...转载 2018-04-20 12:53:36 · 88 阅读 · 0 评论 -
存储过程与job权限相关
一、存储过程中创建表没有权限 create or replace procedure p_create_table Authid Current_User is begin Execute Immediate 'create table create_table(id int)'; end p_create_table;查阅资料发现:Oracle8i以前的版本,所有已编译存储对象,包括pa...转载 2018-04-20 12:55:36 · 406 阅读 · 0 评论 -
创建一个在包里的存储过程
--首先包声明 存储过程名称后面如果没有参数就不要括号create or replace package test_packge is procedure test_pro(in_id in varchar2, out_result out varchar2);end test_packge;--包体create or replace package body test_pck is proce...转载 2018-04-20 12:57:08 · 1081 阅读 · 0 评论 -
oracle存储过程、decode及分层查询
1、存储过程小例子 create or replace procedure test_pro(workDate out varchar2) is begin select sysdate into workDate from dual; end test_pro; 执行: SQL> set serveroutput on SQL> declare 2 wor...转载 2018-04-22 08:53:14 · 882 阅读 · 0 评论 -
游标
-- 利用fetch...into 抓取游标数据 此种方式适用于数据量比较小的情况declare v_id t_user.user_id%type; v_no t_user.user_no%type; cursor cur is select user_id,user_no from t_user; begin open cur; loop fetch cur int...转载 2018-04-22 08:54:01 · 295 阅读 · 0 评论 -
游标使用
-- 声明游标;CURSOR cursor_name IS select_statement--For 循环游标--(1)定义游标--(2)定义游标变量--(3)使用for循环来使用这个游标declare --类型定义 cursor c_job is select empno,ename,job,sal from emp wh...转载 2018-04-22 08:54:43 · 344 阅读 · 0 评论 -
清空缓冲池
alter system flush buffer_cache;alter system flush shared_pool;转载 2018-04-22 08:55:59 · 1005 阅读 · 0 评论 -
Oracle_应用管道函数时_pipelined
Oracle 应用管道函数时 pipelined 出现PLS-00653:在PL/SQL 定义域内不允许有聚集/表函数网友说:在实际的应用中,为了让PL/SQL 函数返回数据的多个行,必须通过返回一个 REF CURSOR 或一个数据集合来完成。REFCURSOR 的这种情况局限于可以从查询中选择的数据,而整个集合在可以返回前,必须进行具体化。 9i 通过引入的管道化表函数纠正了后一种情况。表函...转载 2018-04-23 12:42:18 · 1121 阅读 · 1 评论