- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试查询 View ,但收到“ORA-01873:间隔的前导精度太小”错误消息。下面是查询。
Select * from table order by Col1.
Col1 NOT NULL NUMBER
Col2 NOT NULL NVARCHAR2(80)
Col3 NOT NULL NUMBER
Col4 NOT NULL VARCHAR2(10)
Col5 NVARCHAR2(80)
Col6 NVARCHAR2(255)
Col7 NUMBER
Col8 NOT NULL NVARCHAR2(255)
Col9 NOT NULL NVARCHAR2(1)
Col10 NOT NULL NUMBER
Col11 VARCHAR2(19)
Col12 VARCHAR2(19)
Col13 VARCHAR2(19)
Col14 VARCHAR2(19)
Col15 VARCHAR2(19)
Col16 VARCHAR2(19)
Col17 NUMBER
Col18 NVARCHAR2(255)
Col19 NVARCHAR2(80)
Col20 NOT NULL NUMBER
SELECT tab2.cola AS Col1,
tab1.col AS COl2,
tab2.colb AS Col3,
tab7.col AS Col4,
DECODE(tab3.col, NULL, tab4.col) AS COl5,
tab8.col AS Col6,
tab6.col AS COl7,
tab2.Colc AS Col8,
tab2.cold AS Col9,
tab2.cole AS Col10,
TO_CHAR(TO_DATE('1970/01/01 00:00:00', 'YYYY/MM/DD HH24:MI:SS') + NUMTODSINTERVAL( tab2.colf / 1000,'SECOND'), 'YYYY/MM/DD HH24:MI:SS') AS COl11,
TO_CHAR(TO_DATE('1970/01/01 00:00:00', 'YYYY/MM/DD HH24:MI:SS') + NUMTODSINTERVAL( tab2.colg / 1000,'SECOND'), 'YYYY/MM/DD HH24:MI:SS') AS Col12,
TO_CHAR(TO_DATE('1970/01/01 00:00:00', 'YYYY/MM/DD HH24:MI:SS') + NUMTODSINTERVAL( tab2.colh / 1000,'SECOND'), 'YYYY/MM/DD HH24:MI:SS') AS Col13,
TO_CHAR(TO_DATE('1970/01/01 00:00:00', 'YYYY/MM/DD HH24:MI:SS') + NUMTODSINTERVAL( tab2.coli / 1000,'SECOND'), 'YYYY/MM/DD HH24:MI:SS') AS Col14,
TO_CHAR(TO_DATE('1970/01/01 00:00:00', 'YYYY/MM/DD HH24:MI:SS') + NUMTODSINTERVAL( tab2.colj / 1000,'SECOND'), 'YYYY/MM/DD HH24:MI:SS') AS COl15,
TO_CHAR(TO_DATE('1970/01/01 00:00:00', 'YYYY/MM/DD HH24:MI:SS') + NUMTODSINTERVAL( tab2.colk / 1000,'SECOND'), 'YYYY/MM/DD HH24:MI:SS') AS COl16,
tab2.coll AS Col17,
tab9.col AS Col18,
tab10.col AS Col19,
tab2.colm AS Col20
FROM tab1 ,
tab2 ,
tab3,
tab4,
tab5,
tab6,
tab7,
tab8,
tab9,
tab10
WHERE ....
select * from table where Col1 = 123
或
select * from table where Col2 = 'xyz' order by Col1
但上述查询不适用于任何 col。请建议。
最佳答案
对于 numtodsinterval()
,您的数字“纪元”数字之一似乎太大(或太小)。函数来处理。您可以作为秒数传递的最大值是 2^31-1:
SQL> select numtodsinterval(power(2,31) - 1, 'SECOND') as interval from dual;
INTERVAL
--------------
24855 3:14:7.0
SQL> select numtodsinterval(power(2,31), 'SECOND') as interval from dual;
SQL Error: ORA-01873: the leading precision of the interval is too small
01873. 00000 - "the leading precision of the interval is too small"
*Cause: The leading precision of the interval is too small to store the
specified interval.
*Action: Increase the leading precision of the interval or specify an
interval with a smaller leading precision.
SQL> select numtodsinterval(-2208988800, 'SECOND') as interval from dual;
SQL Error: ORA-01873: the leading precision of the interval is too small
-power(2, 31)
包装为正值,但低于该错误的任何内容:
SQL> select numtodsinterval(power(2,31) - 1, 'SECOND') as interval from dual;
INTERVAL
--------------
24855 3:14:7.0
SQL> select numtodsinterval(-power(2,31), 'SECOND') as interval from dual;
INTERVAL
--------------
24855 3:14:8.0
SQL> select numtodsinterval(-power(2,31) - 1, 'SECOND') as interval from dual;
SQL Error: ORA-01873: the leading precision of the interval is too small
1000 * (power(2, 31) - 1)
.并且要么大于零,要么大于-
1000 * (power(2, 31)
也。
where Col1 = 123
这样的过滤器时它不会出错的原因是您的过滤器(谓词)被推送到 View 查询中,并且不会评估具有过高值的行。也许你只有一个这样的值,它的
col1
值不是 123 及其
col2
值不是“xyz”。如果您确定问题行并使用它进行过滤,则是实际
col1
值它仍然会出错。在没有过滤器的情况下,对所有行进行评估。
SQL> select date '1970-01-01' - 2208988800/86400 from dual;
DATE'1970-01-01'-2208988800/86400
---------------------------------
1900-01-01 00:00:00
...
AND tab2.colh > 0
TO_CHAR(CASE WHEN tab2.colh = -2208988800000 THEN DATE'1900-01-01'
ELSE DATE'1970-01-01' + NUMTODSINTERVAL( tab2.colh / 1000,'SECOND')
END, 'YYYY/MM/DD HH24:MI:SS') AS Col13,
TO_CHAR(DATE'1970-01-01' + ( tab2.colh / 86400000 ), 'YYYY/MM/DD HH24:MI:SS') AS Col13,
colh
包含在选择列表中(它似乎不是),即使是,您也只能排除它 - 并且仍然可能无法始终避免错误,具体取决于优化器如何处理查询。
关于sql - ORA-01873 : the leading precision,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37772124/
发现问题 赞比亚的一个项目,主要做主从数据库同步,主库在赞比亚机房,从库在中国青岛阿里云服务器上面,通过Dataguard实现,当运行一段时间后,发现主从数据库的数据不一致了,从库无法启动,报“O
我目前正面临着一堵墙,我正试图从两个不同的表中获取信息,让它们与按计数记录的信息并排显示。一个是第一个表中具有特定值的总金额,第二个是不同列的值。 表A.current与B.id相同 但是我想要的信息
我正在使用数据泵对 4 个 .dmp 文件执行导入并继续接收如下错误集: ORA-39002: invalid operation ORA-39070: Unable to open the log
我的 j2ee Web 应用程序中出现此错误。 java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1 OR
现场测试工程师在半夜电话反馈:在新建的小测试库做XTTS流程验证,遇到错误: ERROR at line 1:
今天有朋友问到如下一则案例,ORA-01114,ORA-27067以及OSD-04026错误同时出现: *** ACTION NAME:() 2009-04-01 09:31:00.762 ***
> set serveroutput on > set autoprint on; > declare > v_first_name empl
IAM在oracle和数据库中真的是全新的。 非常抱歉提出一个愚蠢的问题。 这是我的问题。我有数据库导出(不是我的数据库,所以我不知道它是如何导出的:有区别吗?),我想用以下脚本导入它: @Echo
这些是我尝试从我的 C# 代码执行存储过程时遇到的错误。 ORA-06502: PL/SQL: numeric or value error: character string buffer too
我们有以下 ORA 错误,它以不同的语言打印错误消息。这种情况很少见,我们将不得不重新启动我们的应用程序服务器。在我的分析中,我发现,在连接到数据库时,JDBC 正在通过采用用户的区域设置在内部更改
刚开始时,有一台服务器的ORACLE 11G数据库连接不上,报错:ORA-12541:TNS:无监听程序 重启服务里面的两个Oracle服务,都没解决。 在网上看到一篇文章说另一种可能是oracle
尝试从客户端使用服务名称 orcl 连接到服务器数据库时出现上述错误.当我使用其他服务名称时它正在连接,即 dms 下面是我的 listener.ora SID_LIST_LISTENER = (
我有一个 Java 类,它调用 SQL 过程来执行一些数据库操作。这是我的 Java 方法: public static void buildContent(String id) throws
下面是我的 SQLPLUS 启动、LSNRCTRL SERVICES、LSNRCTRL STATUS 和 TNSPING 的输出。还包括我的 LISTENER.ORA 文件、TNSNAMES.ORA
我尝试通过运行以下sql来生成一些测试数据。 BEGIN FOR i IN 1..8180 LOOP insert into SPEEDTEST select 'column
当我清楚地识别了变量时,Oracle 不断给我一个无效标识符错误。 //get parameters from the request String custID=request.getPa
我必须在我的应用程序中处理 ORA-28011 和 ORA-28002。但是这些 ORA 警告被 JDBC 抑制了(我认为) 我怎样才能在 Java 中捕获这些? 有什么 JDBC 属性吗? 我不喜欢
当我们通过监听器连接到 Oracle 并达到我们的进程限制时,我们得到一个 ORA-12519:TNS:找不到合适的服务处理程序。查看事件的跟踪文件,它显示 ORA-00020:超过最大进程数 (%s
正如标题所说,我正在尝试使用 sed 来替换,例如, ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE myserver1 ora.LISTENER_SCAN2.lsnr
我有一个连接到 Oracle 的 Django 应用程序。每刷新 10 次左右,不管是哪个页面,都会报错。重新启动后的第一次 ORA-03113 和每个后续错误 ORA-03135。 我已经检查了数据
我是一名优秀的程序员,十分优秀!