Oracle Package的全局变量与Session】的更多相关文章

Oracle Package的全局变量与Session2012-07-26 aaie_ 阅 3595 转 10简单讲,同一个session下pageckage中的全局变量时公共的,会导致冲突.以下是一些相关的资料和文章. Oracle数据库程序包全局变量的应用1 前言 在程序实现过程中,经常用遇到一些全局变量或常数.在程序开发过程中,往往会将该变量或常数存储于临时表或前台程序的全局变量中,由此带来运行效率降低<频繁读取临时表>或安全隐患<存于前台程序变量,可跟踪内存变量获得>. 本…
首先查看一下v$session都存在哪些列 SYS@ORCL>desc v$session Name                                      Null?    Type ----------------------------------------- -------- ---------------------------- SADDR                                              RAW(4) SID       …
每一个连接到数据库实例中的session都拥有一条记录.包括用户session及后台进程如DBWR,LGWR,arcchiver等 Column Datatype Description SADDR RAW(4 | 8) Session address SID NUMBER Session identifier SERIAL# NUMBER 同一个sid被重用时,serial#会增加 AUDSID NUMBER Auditing session ID PADDR RAW(4 | 8) 关联v$p…
现场报网公司数据库连不上,先检查了下数据库processes=1500,session=2200.我认为非常大啊.这个数据库没有几个人用. 查看v$session中的session最多是哪个machine发起的.发现是省公司的数据库发起的session,找开发梳理了下业务,省公司同步dblink操作网公司表,且是通过weblogic的连接池. 哦,有点明确了,是dblink引起的.weblogic连接池是一直存在的,所以在网公司端session是不释放的.假设省公司把应用都停掉,那在网公司端的s…
oracle 使用的过程中,有时候会遇到锁表的情况,数据库增.删.改.查都是会锁表的,但是锁的类型会不同, 大多是行锁,部分会是表锁. 在oracle运行中,一直是有表在锁的,只不过很快一个操作结束,锁就释放了. 但是,总是有操作很慢的时候. 如:一张纪录用户实时数据的大表(1000W数据),为了查询快,加了好几个索引,导致,更新表很慢,一直锁表. 死锁的时候,数据库会一直打trace文件,文件的会比较大(100+M), 如果硬盘空间不足,会导致数据库进程沾满,无法正常使用.并且,死锁是很占用系…
装饰器(decorator):为其他函数添加附加功能 原则:1.不修改被修饰函数源代码 2.不修改被修饰函数的调用方式 装饰器=高阶函数+函数嵌套+闭包 import time def timmer(func): def wapper(*args,**kwargs): start_time=time.time() res=func(*args,**kwargs) stop_time=time.time() print('函数运行时间是%s'%(stop_time-start_time)) ret…
使用pl/sql创建package CREATE OR REPLACE PACKAGE FirstPage is type outlist is ref cursor; Procedure p_get( maxrow in number, minrow in number, return_list out outlist ); function f_get(str in varchar2)return varchar2; END FirstPage; CREATE OR REPLACE pack…
(转自:http://blog.csdn.net/bbliutao/article/details/9016947) 一.概述包可将一些有联系的对象放在其内部.任何能在块定义部分出现的对象都可以在包中出现.这些对象包括存储过程.函数.游标.自定义的类型和变量.我们可以在其它的PLSQL块中引用包中的这些对象,也就是说,包为PLSQL提供了全局变量.包可以实现信息屏蔽和子程序重载. 二.包的定义一个包由两个独立部分组成——包头和包体,各部分被单独存放在数据字典中,定义一个包,要分别定义包头和包体.…
1.package 程序包说明(由函数.过程.变量.常量.游标和异常组成) create or replace package pk_test is -- Author : CHEN -- Created : 2019/10/21 11:34:30 -- Purpose : package test -- Public constant declarations --<ConstantName> constant <Datatype> := <Value>; words…
select sid,serial#,username from v$session where username='user_name';alter system kill session 'sid,serial'; alter system kill session '159,1607';…
错误 在删除一个用户TEST的情况下,再次新建用户TEST并赋予sysdba权限,使用plsqldev工具登录数据库TEST用户,报错user TEST  lacks CREATE SESSION privilege logon denied,如下图. 解决办法 使用超级管理员给这个用户赋予一个CREATE SESSION权限即可. grant create session to TEST; Next…
SELECT dd.* FROM dba_dependencies dd WHERE NAME <> referenced_name AND referenced_type <> 'TABLE' AND dd.referenced_type = 'PACKAGE' AND dd.referenced_name LIKE '%CUX%' AND NAME = 'CUX_PACKAGE_NAME' 此SQL并未实现递归,若要实现完整递归,请自行尝试.…
先看这一段简单的代码 <?php session_start();$_SESSION[‘isadmin’]=’yes’;$isadmin=’no’;echo $_SESSION[‘isadmin’];?> 当php.ini里配置register_globals = Off 时, 没任何问题, 输出yes但是 当php.ini里配置register_globals = On 的时候, 第一次运行输出yes 而刷新一下,则显示的是no显然这是不正常的, 这是个很奇怪的问题, 如果说是$isadmi…
当包第一次被动调用时,将进行初始化:比如将包从硬盘上调到内存中来,放到系统全局工作区的共享缓冲池中,包的运行状态则被放到用户全局区的会话中存储区中,因此可以保证每个调用包的会话都拥有包的运行副本,当会话结束时,包的运行状态才会被释放.也就是说,包从第一次调用被初始化一直到会话结束才释放其运行状态,因此包中的变量具有会话级的作用域,因而可以跨多个事物存储数据.如果再定义包规范时,指定了pragma serially_reusable ,则可以将包的运行状态保存在系统全局区,而不是用户全局区,这样每…
官方文档参考:SYSDBA is used internally in the Oracle database and has specialized functions. Its behavior is not the same as for generalized users. For example, the SYS user cannot do a transaction level consistent read (read-only transaction). Queries by…
1 前言  在程序实现过程中,经常用遇到一些全局变量或常数.在程序开发过程中,往往会将该变量或常数存储于临时表或前台程序的全局变量中,由此带来运行效率降低<频繁读取临时表>或安全隐患<存于前台程序变量,可跟踪内存变量获得>.  本文主要论述将全局变量或常数存取程序包的优点和实现方法.   2 优点  2.1 执行效率比存储于临时表高,不需要频率存取临时表  2.2 将全局变量藏于最后防线<数据库>,安全性较高  2.3 在视图中可以调用程序包的变量,实现动态视图   3…
1. 使用参数SQL_TRACE 下面是官网对此参数的说明 SQL_TRACE Property Description Parameter type Boolean Default value false Modifiable ALTER SESSION, ALTER SYSTEM Range of values true | false SQL_TRACE enables or disables the SQL trace facility. Setting this parameter t…
1.Oracle Package的作用: 可以简化应用设计.提高应用性能.实现信息隐藏.子程序重载 2.ORACLE中的function   .package.package   bodies.procedure的区别和相同: function有返回值,有参数:procedure无返回值,有参数:package.package   body是同时存在的,就像.h和.cpp文件,如果要外部调用的,就在package里声明一下,包内调用的,只要在body里写就行了.package可包括functio…
数据库的连接模式Connection Mode: Dedicated Server Mode(专有模式) 当用户发出请求时,如远程的client端通过监听器连接数据库上,ORACLE的服务器端会启用一个进程来响应,ORACLE端进程和Client端进程通信组成一个会话,ORACLE进程帮用户发出SQL语句,将结果返回给用户. 一对一,一个用户进程对应一个服务器进程,响应很快,但如果用户比较多,数据库压力比较大. Share Server Mode 共享服务模式,通过一个分发起,把用户的请求发给服…
今天,我特意从网上找了一些,以及自己平时总结的,关于错误编号和说明,平时我们在写项目的时候,往往是可能会出现下面这些错误,例如:违反唯一约束,无效的会话ID,等等.希望对大家有点帮助!可以看看,如果有错误,可以立马找到对应的数字,找到对应的错误. 1 ORA-00001: 违反唯一约束条件 (.) 2 ORA-00017: 请求会话以设置跟踪事件 3 ORA-00018: 超出最大会话数 4 ORA-00019: 超出最大会话许可数 5 ORA-00020: 超出最大进程数 () 6 ORA-0…
oracle错误代码大全(超详细)   ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出最大进程数 () ORA-00021: 会话附属于其它某些进程:无法转换会话 ORA-00022: 无效的会话 ID:访问被拒绝 ORA-00023: 会话引用进程私用内存:无法分离会话 ORA-00024: 单一进程模式下不允许从多个进程注册 ORA-000…
Oracle存储过程中异常的捕捉和处理 CREATE OR REPLACE Procedure Proc_error_process ( v_IN in Varchar2, v_OUT Out Varchar2) AUTHID CURRENT_USER AS --声明异常 some_kinds_of_err EXCEPTION; -- Exception to indicate an error condition v_ErrorCode NUMBER; -- Variable to hold…
默认情况下,PHP 使用内置的文件会话保存管理器(files)来完成会话的保存.我们无需设置,PHP默认将session以文件的形式保存到服务器. 通过调用函数 session_start() 即可手动开始一个会话.如果配置项 session.auto_start 设置为1, 那么请求开始的时候,会话会自动开始. PHP也提供了自定义会话保存管理器功能.有时候我们希望session可以保存到其他地方,如数据库. 自定义Session存储函数 如果需要在数据库中或者以其他方式存储会话数据, 需要使…
Oracle 存储过程异常处理 1.异常的优点    如果没有异常,在程序中,应当检查每个命令的成功还是失败,如  BEGIN  SELECT ...  -- check for ’no data found’ error  SELECT ...  -- check for ’no data found’ error  SELECT ...  -- check for ’no data found’ error  这种实现的方法缺点在于错误处理没有与正常处理分开,可读性差,使用异常,可以方便处理…
Oracle错误代码大全——最新.最全的Oracle错误代码 对快速查找oracle数据库错误原因很有帮助 ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出最大进程数 () ORA-00021: 会话附属于其它某些进程:无法转换会话 ORA-00022: 无效的会话 ID:访问被拒绝 ORA-00023: 会话引用进程私用内存:无法分离会话 OR…
ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出最大进程数 () ORA-00021: 会话附属于其它某些进程:无法转换会话 ORA-00022: 无效的会话 ID:访问被拒绝 ORA-00023: 会话引用进程私用内存:无法分离会话 ORA-00024: 单一进程模式下不允许从多个进程注册 ORA-00025: 无法分配 ORA-00026: …
ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出最大进程数 () ORA-00021: 会话附属于其它某些进程:无法转换会话 ORA-00022: 无效的会话 ID:访问被拒绝 ORA-00023: 会话引用进程私用内存:无法分离会话 ORA-00024: 单一进程模式下不允许从多个进程注册 ORA-00025: 无法分配 ORA-00026:…
无意间看到一篇文章,觉得对于ORACLE的新手很实用,特转载,原文出处这里 说明:在创建数据库时输入的密码,是修改系统默认的密码,以system和sysman等系统默认身份登录时要输入的密码就是修改后的密码(创建数据库时输入的密码)如果要创建新的用户就必须以system或者sysman(这二者的权限最大)的身份登录后才可创建创建用户格式:create user 用户名 identified by 密码(例如:create user cht identified by cht;)创建完成后,必须分…
1.Oracle认证,与其它数据库比较,安装 Oracle安装会自动的生成sys用户和system用户: (1)sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install (2)system用户是管理操作员,权限也很大.具有sysoper角色,没有create database的权限,默认的密码是manager (3)一般讲,对数据库维护,使用system用户登录就可以拉 也就是说sys和system这两…
Oracle作为一款比较优秀同时也比较难以掌握的大型数据库,在我们学习使用的过程中,不可避免的会遇到一些错误,为此 Oracle 给出了一套完备的错误消息提示机制 我们可以根据Oracle给出的消息提示可以很快捷的解决这些问题.这就是 Oracle ORA CODES .同时 Oracle 官方也给出了这些 ORA CODES 的英文解释,而我这里收集了一些翻译,同时我将根据我遇见的问题进行实时的更新,并且如果遇见一些常见的重要的错误,我会实时的留下一些专门的解决办法. 建议用Ctrl + F…