我使用版本10.1.0.301的ODAC/ODP.Net驱动程序在IIS5上运行负载平衡(不使用会话状态)ASP.Net 2.0应用程序,运行回单个Oracle 10g服务器.在长时间不活动(几个小时)之后,应用程序看似随机,将抛出Oracle异常:
例外:ORA-03113:结束文件在Oracle.DataAccess.Client.OracleException.HandleErrorHelper(的Int32 ERRCODE,康涅狄格州的OracleConnection,IntPtr的opsErrCtx,OpoSqlValCtx*pOpoSqlValCtx,对象的src,字符串过程)在Oracle.DataAccess.Client上的通信信道.OracleCommand.ExecuteReader(布尔重新查询,布尔fillRequest,行为的CommandBehavior)在Oracle.DataAccess.Client.OracleCommand.System.Data.IDbCommand.ExecuteReader()
...堆栈的Oracle部分在这里结束......
我们正在为每个请求创建新的连接,在try/catch/finally中包含open和close以确保正确的连接关闭,并且整个事务都包含在using(OracleConnection yadayada){...}块中.在停止不活动后,此问题似乎与重新启动ASP.Net应用程序无关.
我们还没有自己重现这个问题.思想,祈祷,帮助?
更多:通过IT检查,防火墙未设置为终止这些服务器之间的连接.
select DISTINCT a.FNAME||' '||a.LNAME
from AUTHOR a, books B, BOOKAUTHOR ba, customers C, orders
where C.firstname='BECCA'
and C.lastname='NELSON'
and a.AUTHORID=ba.AUTHORID
and b.ISBN=bA.ISBN
order by a.LNAME
Run Code Online (Sandbox Code Playgroud)
给出ORA-01791:不是SELECTed表达式,但没有DISTINCT.
如何使它工作?
SELECT ename
, job
, CASE deptno
WHEN 10
THEN 'ACCOUNTS'
WHEN 20
THEN 'SALES'
ELSE 'UNKNOWN'
END AS department
FROM emp /* !!! */
WHERE department = 'SALES'
Run Code Online (Sandbox Code Playgroud)
这失败了:
ORA-00904:"%s:无效标识符"
有没有办法克服Oracle 10.2 SQL中的这种限制?如何在where子句中使用'case expression column'?
无论如何将ArrayList拆分成不同的部分而不知道它的大小直到运行时?我知道有一种叫做的方法:
list.subList(a,b);
Run Code Online (Sandbox Code Playgroud)
但我们需要明确提到盯着和结束范围的清单.我的问题是,我们得到一个包含帐号的arraylist,其中包含2000,4000个帐号的数据(编码时间内不会知道数字),我需要将此符号传递给PL/SQL的IN查询,如IN不支持超过1000个值,我试图分成多个块并将其发送到查询
注意:我不能使用像番石榴等任何外部库.. :(在这方面的任何指南表示赞赏.
对于给定的表'foo',我需要一个查询来生成一组具有指向foo的外键的表.我正在使用Oracle 10G.
当我做...
Select TO_CHAR (date_field, 'Month DD, YYYY')
from...
Run Code Online (Sandbox Code Playgroud)
我得到以下内容:
July 01, 2011
April 01, 2011
January 01, 2011
Run Code Online (Sandbox Code Playgroud)
为什么我的月和日之间有额外的空格?为什么不把它们放在一起呢?
使用PDO时,持久连接管理背后的规则/逻辑是什么?
网络服务器
DB服务器
非持久连接
<?php
// Open a new connection
// Session created in Oracle
$dbh = new PDO('DSN', 'webuser', 'password');
// webuser is active in v$session with a SID=1
$dbh = NULL;
// webuser removed from v$session
// Manually calling $dbh = NULL; will remove the session from v$session
// OR
// Wait for script EOL so a …Run Code Online (Sandbox Code Playgroud) 我需要一些关于如何诊断和解决这个问题的建议.我不知道这是一个简单的服务器设置问题还是应用程序设计问题(或两者兼而有之).
每隔几个月一次或两次,此Oracle XE数据库会报告ORA-4031错误.它并没有始终指出sga的任何特定部分.最近的一个例子是:
ORA-04031: unable to allocate 8208 bytes of shared memory ("large pool","unknown object","sort subheap","sort key")
当出现此错误时,如果用户不断刷新,点击不同的链接,他们通常会在不同的时间获得更多这类错误,然后他们很快就会收到"404 not found"页面错误.
重新启动数据库通常会解决问题一段时间,然后一个月左右再次出现,但很少在程序中的同一位置(即它似乎没有链接到代码的任何特定部分)(上面的示例)从Apex页面引发错误,该页面从表中排序5000多行.
我已经尝试sga_max_size从140M增加到256M并希望这会有所帮助.当然,我不知道这是否有帮助,因为我必须重新启动数据库来更改设置:)
我在带有512MB RAM的Oracle Enterprise Linux 5机器上运行Oracle XE 10.2.0.1.0.服务器仅运行数据库,Oracle Apex(v3.1.2)和Apache Web服务器.我安装了几乎所有的默认参数,它运行了一年左右.我通过调整应用程序代码来解决自己的大多数问题; 它没有被广泛使用,也不是一个关键业务系统.
这些是我认为可能相关的一些当前设置:
pga_aggregate_target 41,943,040
sga_max_size 268,435,456
sga_target 146,800,640
shared_pool_reserved_size 5,452,595
shared_pool_size 104,857,600
Run Code Online (Sandbox Code Playgroud)
如果它有任何帮助,那么当前的SGA尺寸:
Total System Global Area 268435456 bytes
Fixed Size 1258392 bytes
Variable Size 251661416 bytes
Database Buffers 12582912 bytes
Redo Buffers 2932736 bytes
Run Code Online (Sandbox Code Playgroud) 1).你好,我有以下Oracle PL/SQL代码可能会从你们看来生锈:
DECLARE
str1 varchar2(4000);
str2 varchar2(4000);
BEGIN
str1:='';
str2:='sdd';
IF(str1<>str2) THEN
dbms_output.put_line('The two strings is not equal');
END IF;
END;
/
Run Code Online (Sandbox Code Playgroud)
这很明显,两个字符串str1和str2不相等,但为什么'两个字符串不相等'没有打印出来?Oracle有另一种比较两个字符串的常用方法吗?
我在linux上的deb文件中安装了Oracle 10g xe,然后开始使用这个终端命令对其进行配置
sudo /etc/init.d/oracle-xe configure
但是在完成配置后我忘记了密码,所以当我使用上一个命令时,如何在重新安装后重新配置它
已配置Oracle数据库10g快捷版
谢谢,