Oracle
文章平均质量分 53
夜未央,流年殇
这个作者很懒,什么都没留下…
展开
-
ORA-01436: 用户数据中的 CONNECT BY 循环
今天在查询一个菜单的所有父菜单的时候,报“ORA-01436: 用户数据中的 CONNECT BY 循环 ”错误,所用SQL如下:select * from roles m start with m.rno=‘690702’ connect by prior m.r_rno=m.rno;仔细查看一下,发现记录RNO为69的记录,其父R_RNO也为69,导致死循环解决方法:select * from roles m start with m.rno=‘690702’ connect by nocycl原创 2022-02-25 23:45:00 · 6702 阅读 · 0 评论 -
oracle 同义词
在现在的项目中会有很多接口,数据来源也可能是不同数据库或者是不同的用户下的表,给访问该表带来了一定的麻烦。这个时候就可以使用同义词来简化。同义词的语法是:CREATE [OR REPLACE] [PUBLIC] SYNONYM [ schema.] 同义词名称 FOR [ schema.] object [ @dblink ];创建同义词的时候还需要赋值相关的权限:首先是:用sys账号给DM账号赋予CREATE SYNONYM的权限[html]view plaincopyGRAN...转载 2021-06-19 10:39:53 · 148 阅读 · 0 评论 -
Oracle列转行函数 Listagg()详解
详解listagg()函数可以实现多列记录聚合为一条记录,从而实现数据的压缩、致密化(data densification)基本用法像聚合函数一样,通过Group by语句,把每个Group的一个字段,拼接起来LISTAGG(XXX,XXX) WITHIN GROUP( ORDER BY XXX)示例:with temp as( select '中国' nation ,'江苏' city from dual union all select '中国' nation ,'上海' city原创 2021-04-28 07:46:02 · 43624 阅读 · 1 评论 -
Oracle基础包之DBMS_PIPE(三)
1、概述说明:Oracle管道类似UNIX系统的管道,但不采用OS机制实现,管道信息被缓存到SGA中,当关闭例程时会丢失管道信息,建立公用管道所有数据库用户都可访问,私有管道只能由建立这访问。作用:用于在同一例程程的不同会话之间进行管道通信.注意事项:--如果用户要执行包dbms_pipe中的过程和函数,则必须要为用户授权.conn sys/oracle as sysdba;grant execute on dbms_pipe to scott;2、包的组成2.1、create_pip原创 2021-01-10 20:56:49 · 1059 阅读 · 1 评论 -
Oracle基础包之DBMS_ALERT(四)
1、概述作用用于生成并传递数据库预警信息.使用包DBMS_ALERT,则必须以SYS登陆,为该用户授予执行权限.sql>conn sys/oracle as sysdba;sql>grant execute on dbms_alert to scott;2、包组成2.1、register说明:用于注册预警事件语法:dbms_alter.register(name in varchar2);-- 其中name指定预警事件名称,其值不能超过30字节。示例:exec d原创 2021-01-10 20:55:52 · 228 阅读 · 0 评论 -
Oracle基础包之UTL_INADDR(二十二)
1、概述作用:用于取得局域网或Internet环境中的主机名和IP地址(1)、get_host_name作用:用于取得指定IP地址所对应的主机名语法:utl_inaddr.get_host_name(ip in varchr2 default null) return varchar2;--其中ip指定tcp/ip地址例子:select utl_inaddr.get_host_name('127.0.0.1') hostname from dual;(2)、get_host_add原创 2021-01-10 20:38:42 · 468 阅读 · 0 评论 -
Oracle基础包之UTL_FILE(二十一)
1、概述作用:用于读写OS文件.使用该包访问OS文件时,必须要为OS目录建立相应的DIRECTORY对象…当用户要访问特定目录下的文件时,必须要具有读写DIRECTORY对象的权限.在使用UTL_FILE包之前,应首先建立DIRECTORY对象.2、包的组成(1)、file_type作用:该类型是utl_file包中所定义的记录类型,其成员是私有的,不能被直接引用。该类型的定义如下:type file_type is record(is binary_integer,datatype bin原创 2021-01-10 20:25:54 · 2487 阅读 · 0 评论 -
Oracle基础包之DBMS_STATS(二十)
1、概述作用:用于搜集,查看,修改数据库对象的优化统计信息2、包的组成(1)、get_column_stats作用:用于取得列的统计信息语法:dbms_stats.get_column_stats(ownname varchar2,tabname varchar2,colname varchar2,partname varchar2 default null,stattab varchar2 default null,statid varchar2 default null,distcnt原创 2020-12-27 19:00:52 · 1398 阅读 · 0 评论 -
Oracle基础包之DBMS_RESOURCE_MANAGER(十九)
1、概述作用:用于维护资源计划,资源使用组和资源计划指令;包dbms_resource_manager_privs用于维护与资源管理相关的权限.2、包的组成1)、dbms_resource_manager.create_plan作用:建立资源计划语法:dbms_resource_manager.create_plan(plan in varchar2,comment in varchar2,cpu_mth in varchar2 default 'EMPHASIS',active_sess原创 2020-12-27 12:38:37 · 540 阅读 · 1 评论 -
Oracle基础包之DBMS_REPAIR(十八)
1、概述作用:用于检测,修复在表和索引上的损坏数据块2、包的组成1)、admin_tables语法:dbms_repair.admin_tables(table_name in varchar2,table_type in binary_integer,action in binary_integer,tablespace in varchar2 default null);其中table_name用于指定要处理的表名,必须要指定前缀orphan或repair,table_type指定表类型(原创 2020-12-27 10:09:08 · 227 阅读 · 0 评论 -
Oracle基础包之DBMS_TTS(十七)
1、概述作用:用于检查表空间集合是否是自包含的,并在执行了检查之后,将违反自包含规则的信息写入到临时表TRANSPORT_SET_VIOLATIONS中.2、包的组成(1)、transport_set_check作用:用于检查表空间集合是否是自包含的。语法:dbms_tts.transport_set_check(ts_list in varchar2,incl_constraints in boolean default,full_closure in boolean default fa原创 2020-12-27 10:08:32 · 282 阅读 · 0 评论 -
Oracle基础包之DBMS_SPACE_ADMIN(十六)
1、概述作用:提供了局部管理表空间的功能。2、包的组成(1)、segment_verify作用:用于检查段的区映像是否与位图一致语法:dbms_space_admin.segment_verify(tablespace_name in varchar2,header_relative_file in positive,heaeder_block in positive,verify_option in positive default segment_verify_extents);--其原创 2020-12-27 10:07:57 · 657 阅读 · 1 评论 -
Oracle基础包之DBMS_SPACE(十五)
1、概述作用:用于分析段增长和空间的需求。2、包的组成(1)、unused_space作用:用于返回对象(表、索引、簇)的未用空间语法:dbms_space.unused_space(segment_owner in varchar2,segment_name in varchar2,segment_type in varchar2,total_blocks out number,total_bytes out number,unused_blocks out number,unuse原创 2020-12-27 10:07:14 · 433 阅读 · 0 评论 -
Oracle基础包之DBMS_OBFUSCATION_TOOLKIT(十四)
1、概述作用:用于加密和解密应用数据,另外还可以生成密码检验和.通过加密输入数据,可以防止黑客或其他用户窃取私有数据;而通过结合使用加密和密码检验和,可以防止黑客破坏初加密的数据.当使用该包加密数据时,要求被加密数据的长度必须为8字节的整数倍.当使用DES算法加密数据时,密钥长度不能低于8字节;当使用DES3算法加密数据时,密钥长度不能低于16字节.2、包组成(1)DESencrypt作用:用于使用DES算法对输入数据进行加密,并生成加密格式的数据。密钥长度不能低于8字节且输入数据必须是8原创 2020-12-27 10:06:11 · 949 阅读 · 0 评论 -
Oracle基础包之DBMS_FLASHBACK(十三)
概述用于激活或禁止会话的flashback特征,为了使得普通用户可以使用该包,必须要将执行该包的权限授予这些用户,grant execute on dbms_flashback to scott;包的组成enable_at_time作用:用于以时间方式激活会话的flashback语法:dbms_flashback.enable_at_time(query_time in timestamp);--其中query_time指定flashback对应的时间点;enable_at_syst原创 2020-11-16 07:47:08 · 803 阅读 · 0 评论 -
Oracle基础包之DBMS_LOGMNR(十二)
概述通过使用包DBMS_LOGMNR和DBMS_LOGMNR_D,可以分析重做日志和归档日志所记载的事务变化,最终确定误操作(例如DROP TABLE)的时间,跟踪用户事务操作,跟踪并还原表的DML操作.回到顶部包的组成dbms_logmnr.add_logfile作用:用于为日志分析列表增加或删除日志文件,或者建立日志分析列表。语法:dbms_logmnr.add_logfile(LogFileName in varchar2,Option in binary_integer defaul原创 2020-11-15 09:58:00 · 2373 阅读 · 0 评论 -
Oracle基础包之DBMS_RANDOM(十一)
概述提供了内置的随机数生成器,可以用于快速生成随机数.包的组成initialize作用:用于初始化dbms_random包,必须提供随机数种子。语法:dbms_random.initialize(seed in binary_integer);--其中seed指定随机数种子。seed作用:用于复位随机数种子语法:dbms_random.seed(seed in binary_integer);random作用:用于生产随机数语法:dbms_random.randon原创 2020-11-13 07:41:27 · 91 阅读 · 0 评论 -
Oracle基础包之DBMS_SHARED_POOL(十)
概述提供了对共享池的一些过程和函数访问,它使用户可以显示共享池中的对象尺寸,绑定对象到共享池,清除绑定到共享池的对象.为了使用该包,必须运行dbmspool.sql脚本来建立该包.包的组成sizes作用:用于显示在共享池中大于指定尺寸的对象语法:dbms_shared_pool.sizes(minsize number);--其中minsize用于指定要显示对象的最小尺寸(单位KB)例子:exec dbms_shared_pool.sizes(100);keep作用:用于将特定原创 2020-11-11 07:49:31 · 429 阅读 · 0 评论 -
Oracle基础包之DBMS_DDL(九)
概述提供了在PL SQL块中执行DDL语句的方法,也提供了一些DDL的特殊管理方法包组成alter_compile说明:用于重新编译过程、函数和包语法:dbms_ddl.alter_compile(type varchar2,schema varchar2,name varchar2);--其中type指定对象类型(procedure,function,package,trigger),schema指定对象所在方案,name指定对象名例子:dbms_ddl.alter_compile原创 2020-11-10 07:54:41 · 380 阅读 · 0 评论 -
Oracle基础包之DBMS_RLS(八)
概述本报只适用于Oracle Enterprise Edition,它用于实现精细访问控制,并且精细访问控制是通过在SQL语句中动态增加谓词(WHERE子句)来实现的.通过使用ORACLE的精细访问控制特征,可以使不同数据库用户在执行相同SQL语句时操作同一张表上的不同数据.例如多个用户执行select * from emp时,各自看到的行数不同。A只能看到财务部的记录,B只能看到市场部的数据。包的组成add_policy作用:用于为表、视图或同义词增加一个安全策略,当执行该操作结束是会自动提原创 2020-11-06 07:56:13 · 498 阅读 · 0 评论 -
Oracle基础包之DBMS_TRANSACTION(五)
1、概述用于在过程,函数,和包中执行SQL事务处理语句,为事务管理提供的一些过程和函数以及对分布事务的一些理解并为悬挂事务提供了处理方法2、包组成2.1、read_only说明:用于开始只读事务,其作用与SQL语句SET TRANSACTION READ ONLY完全相同,该过程必须是事务开始的第一条语句。语法: dbms_transactino.read_only2.2、read_write说明:用于开始读写事务,其作用与SQL语句SET TRANSACTION READ WRIT原创 2020-11-04 07:53:54 · 535 阅读 · 0 评论 -
Oracle基础包支DBMS_SESSION(六)
1、概述2、包组成1)、set_identifier说明:用于设置会话的客户ID号。语法:dbms_session.set_identifier(client_id varchar2);其中client_id指定当前会话的应用标识符。2)、set_context说明:用于设置应用上下文属性语法:dbms_session.set_context(namespace varchar2,attribute varchar2,value varchar2);dbms_session.set_co原创 2020-11-04 07:51:52 · 1216 阅读 · 0 评论 -
Oracle基础包之DBMS_ROWID(七)
rowid_create说明:建立ROWID语法:dbms_rowid.rowid_create (rowid_type in number,object_number in number,relative_fno in n umber,block_number in number,row_number in number) return rowid;--其中,rowid_type用于指定ROWID类型(0:受限ROWID,1:扩展ROWID);object_number用于指定数据对象号;原创 2020-11-04 07:49:22 · 450 阅读 · 0 评论 -
Oracle基础包之DBMS_JOB(二)
1、概述 DBMS_JOB包包含isubmit、submit、remove、change、what、next_date、instance、interval、broken、run、user_export等过程。主要用于安排和管理作业队列,通过使用作业,可以使ORACLE数据库定期执行特定的任务,这个包属于系统用户sys2、包的构成2.1、isubmit 和submit说明:此过程用于建立一个新作业。注意事项:当建立作业时,需要给作业要执行的操作,作业的下次运行日期及运行时间间隔。语法原创 2020-08-30 09:30:22 · 624 阅读 · 0 评论 -
oracle基础包之DBMS_OUTPUT(一)
1、概述DBMS_OUTPUT包包含put、put_line、get_line、get_lines 等过程。主要用来输入信息到缓冲区,从缓冲区输出信息,这个包属于系统用户sys2、包的构成2.1、enbale说明:此过程用于激活DBMS_OUTPUT包,如果没有激活则不能使用DBMS_OUTPUT包的其它过程或函数。调用此过程生成的缓冲区最大容量为1000000字节,最小为2000字节,默认为20000字节。注意事项:在SQL*PLUS中使用SERVEROUTPUT不需要使用此过程。原创 2020-08-29 09:24:54 · 3309 阅读 · 0 评论 -
oracle关键字整理
小写转大写UPPerselect upper(ename) from emp;大写转小写LOWERselect lower(ename) from emp;Clob字段转换成字符串select dbms_lob.substr(content) from emp;oracle字段值根据特定分隔符拆分select * from (SELECT REGEXP_SUBSTR(KEYWORD, '[^ ]+', 1, level) key_word, a.* from te原创 2020-08-22 10:29:20 · 472 阅读 · 0 评论 -
plsql连接远程Oracle,查询和更新中文乱码
发生这个问题的原因是因为Windows10本地的字符集和远程Oracle的字符集不一致。我们需要在系统环境变量中添加对应的字符集配置。右键”此电脑”->”属性”-> “高级系统设置”-> “环境变量”新增系统变量NLS_LANG = AMERICAN_AMERICA.AL32UTF8...原创 2020-05-11 21:44:20 · 268 阅读 · 0 评论 -
oracle12及以上版本新建用户报错公共用户名或角色无效
今天新安装了一个Oracle12版本的数据库,创建新用户时报错:公共用户名或角色无效。查了一些资料发现Oracle12版本创建用户时需要以c##开头,例如创建用户应该是这样写的:create user c##demo identified by “demo”Default tablespace demoTemporary tablespace temp;为什么会发生这种原因呢,是因为Oracle12c引入了一种CDB和PDB的新特性,在Oracle12c中引入了多租户的环境,允许.原创 2020-05-11 21:40:14 · 1555 阅读 · 0 评论