小编Jef*_*emp的帖子

全局临时表中的数据持续时间?

有人可以告诉我:全球临时表中的数据有多长?

sql oracle

13
推荐指数
3
解决办法
3万
查看次数

如何检查包中是否存在过程?

我有程序包,在很多地方使用,在某些地方我需要稍微不同的程序,例如更新一列.

我以为我可以创建一个额外的包,它将包含一些但不是所有的过程.

有没有办法if直接在脚本中检查一个语句,如果额外的包中没有程序,那么是否可以使用标准包?

oracle plsql

9
推荐指数
1
解决办法
2万
查看次数

获得长期的优势

我有一个包含数据类型列的表LONG RAW.如何确定此列中数据的大小(以字节为单位)?

如果我调用LENGTH它上面的函数,它就会升起ORA-00932: inconsistent datatypes: expected NUMBER got LONG BINARY.

万一你认为:UTL_RAW.LENGTH加注ORA-00997: illegal use of LONG datatype:)

(是的,我知道LONG RAW已被弃用 - 由于一些可能需要它的旧软件而出现了问题)

oracle ora-00932 ora-00997

8
推荐指数
1
解决办法
3万
查看次数

为什么Oracle会吃我的字符串?

我目前尝试在Oracle DB上执行以下查询

select tzname || ' (UTC'|| tz_offset(tzname) || ')' from v$timezone_names
Run Code Online (Sandbox Code Playgroud)

它似乎并不复杂.只是timzone的名称和大括号中的UTC偏移量.但是当我在Windows上使用PL/SQL Developer执行查询时,它总是会吃掉最后一个大括号.

所以我去了sqlplus并在那里执行了,现在我得到了我的最后一个大括号,但在最后一个大括号之前还有一个额外的空格作为额外的好东西.

我和嵌套尝试过to_char()trim(),但没有改变.我也尝试过不同的DB,但它总是一样的.

有人知道是否存在tz_offset字符串连接问题?

oracle oracle10g plsqldeveloper

8
推荐指数
1
解决办法
1037
查看次数

我们是否应该在读取繁重的应用程序中使用dbref或嵌入式文档

我们正在开发一个阅读量很大的应用程序,可能有数百万个文档.我们需要在几乎每个集合中引用用户信息.用户信息具有一些可能会不时更改的属性.

我们应该使用DBref还是在所有集合中嵌入用户信息?

在重读应用程序中DBref性能有多糟糕?

如果我们不使用DBref,如果用户信息定期更改,我们如何更新每个文档?

在Mongodb中,对于这种用例,是否有DBref和嵌入式文档的替代方案?

mongodb

8
推荐指数
1
解决办法
3701
查看次数

检查数据库中是否存在表 - PL SQL

我是PL SQL的新手,我需要检查服务器上是否存在表并删除它.

先谢谢,戈兰

oracle plsql

7
推荐指数
4
解决办法
5万
查看次数

连接查询中的表顺序

我在Oracle文档中找到了这一段

如果要选择每个部门的名称及其管理员的名称,可以使用以下两种方法之一编写查询.在下面的第一个示例中,提示/ ++有序++ /表示按照表中出现在FROM子句中的顺序进行连接,并尝试优化连接顺序.

SELECT /*+ordered*/ d.NAME, e.NAME
FROM DEPT d, EMP e WHERE d.MGR = e.SS#
Run Code Online (Sandbox Code Playgroud)

要么:

SELECT /*+ordered*/ d.NAME, e.NAME 
FROM EMP e, DEPT d WHERE d.MGR = e.SS# 
Run Code Online (Sandbox Code Playgroud)

假设有10个部门和1000个员工,并且每个查询中的内部表在连接列上都有一个索引.在第一个查询中,第一个表生成10个符合条件的行(在本例中为整个表).在第二个查询中,第一个表生成1000个符合条件的行.第一个查询将访问EMP表10次并扫描DEPT表一次.第二个查询将扫描EMP表一次,但将访问DEPT表1000次.因此,第一个查询将执行得更好.根据经验,表格应从最小有效数字行到最大有效行数排列.通过应用完全在该表上解析的逻辑条件,可以获得查询中表的有效行大小.

但我没有正确理解这一点.如果m表t1中有行和n表t2中的行,那么m x n在这两种情况下sql引擎都不会遍历行吗?

更新:感谢所有回复.我不会压倒优化器,只是想确认一下我的想法.

sql oracle join

7
推荐指数
1
解决办法
5829
查看次数

如何用CLOB调用REPLACE(不超过32K)

Oracle 11g肯定提高了CLOB的可用性,使大多数字符串函数重载,因此它们现在可以与CLOB本机一起工作.

但是,一位同事从他的代码中得到了这个错误:

ORA-22828: input pattern or replacement parameters exceed 32K size limit
22828. 00000 -  "input pattern or replacement parameters exceed 32K size limit"
*Cause:    Value provided for the pattern or replacement string in the form of
           VARCHAR2 or CLOB for LOB SQL functions exceeded the 32K size limit.
*Action:   Use a shorter pattern or process a long pattern string in multiple
           passes.
Run Code Online (Sandbox Code Playgroud)

仅当第三个参数为replace具有超过32k字符的CLOB 时才会发生这种情况.

(Oracle Database 11g企业版11.2.0.3.0版 - 64位生产)

测试用例:

declare
  v2 varchar2(32767);
  cl_small clob;
  cl_big …
Run Code Online (Sandbox Code Playgroud)

oracle plsql oracle11gr2

7
推荐指数
1
解决办法
3万
查看次数

Oracle SQL 中的“限制”子句“SQL 命令未正确结束”

我知道这里之前已经问过与“限制”相关的问题,我已经提到了它们。我的问题有些不同。

这是我的查询:

select id,somecol from sometable where someval=2 order by id desc limit 3
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息,提示“SQL 命令未正确结束”。我该如何解决?如果您需要其他信息,请随时告诉我。

sql oracle limit

7
推荐指数
2
解决办法
3万
查看次数

如何防止在选择查询中选择重复行?

我被赋予了从Oracle数据库中选择关键数据的任务,但我注意到我的select正在返回重复的行.我不需要它们用于我的报告但我不希望它们删除它们.有人可以帮助只获取我需要的数据.我尝试了以下代码,但这没有用.

SELECT distinct bbp.SUBCAR "Treadwell",
       bbp.BATCH_ID "Batch ID",
       bcs.SILICON "Si",
       bcs.SULPHUR "S",
       bcs.MANGANESE "Mn",
       bcs.PHOSPHORUS "P",
       to_char(bcs.SAMPLE_TIME, 'dd-MON-yy hh24:MI') "Sample Time",
       to_char(bbp.START_POUR, 'dd-MON-yy hh24:MI') "Start Pour Time",
       to_char(bbp.END_POUR, 'dd-MON-yy hh24:MI') "End pour Time",
       bofcs.temperature "Temperature"
FROM  bof_chem_sample bcs, bof_batch_pour bbp, bof_celox_sample bofcs
WHERE bcs.SAMPLE_CODE= to_char('D1')
AND bbp.BATCH_ID=bcs.BATCH_ID
AND bcs.SAMPLE_TIME>=to_date('01-jan-10')
Run Code Online (Sandbox Code Playgroud)

oracle duplicate-removal

6
推荐指数
2
解决办法
2万
查看次数