我正在使用ORACLE 11g学习SQL。如何在ORACLE SQL中按字符打印字符串(来自SELECT查询),而不使用dual,也不使用PLSQL?下面是示例字符串:
'MANOJ'
输出应该是这样的:
M
A
N
O
J
我试过使用LEVEL,CONNECT,但是他们没有在isqlplus中工作。请帮帮我!
我想在Oracle中执行一个查询或一些函数,它可以更新大约24000行。例如,1更新查询如下所示:
update numbers
set status = 1 and some_id = 123123
where number_id = 1231;
"some_id“和"number_id”在每个查询中都是不同的。
问题是一个接一个地做这个花费了太多的时间,我需要更快的解决方案。
当使用JDBC的PreparedStatements查询Oracle时,请考虑以下几点:
String qry1 = "SELECT col1 FROM table1 WHERE rownum=? AND col2=?";
String qry2 = "SELECT col1 FROM table1 WHERE rownum=1 AND col2=?";
String qry3 = "SELECT col1 FROM table1 WHERE rownum=1 AND col2=" + someVariable ;
逻辑指示-- rownum
我们在我们的应用程序中遇到了零星的长查询执行。数据库为Oracle 12.1 RDS。我可以在AppDynamics中看到查询执行了13秒,我自己在Oracle SQL Developer中执行它,并且它的执行时间从未超过0.1秒。我不能将查询放在这里,因为有3个查询的执行时间偶尔超过10秒,并且我不能在SQL Developer中对每个查询进行重现。我们已经开始使用/*+ gather_plan_statistics */为长时间运行的查询记录执行计划,除了没有这样的记录“1SQL plan Directive using for this statement”之外,它与执行0.1s的查询是
我使用oracle10gpl sql,我想将行转换成列,但是列应该是动态的,而不是硬编码的。
select *
from
"EnumerationValue"
pivot
(count("pkEnumerationValueId")
for "Text" in (select "Text" from "EnumerationValue" where "fkEnumerationId"=6));
我通过搜索找到了这个查询,但是它给了我错误。
ORA-00933: SQL c
我的查询有问题。有一张桌子"TEAM“,上面有一排BLOB型的”照片“
我的查询如下:
select distinct gruppe
from Gruppe gruppe
left outer join fetch gruppe.teams teams
inner join teams.turniere as turnier
where turnier.id = " + this.getTurnierId() + " order by gruppe.gruppenIndex"
问题是oracle返回一个错误:
ORA-
我有很长的执行时间(而不是长的提取时间),使用Python从一个大表中获取数据,我想了解是否有任何明显的错误。
我的表定义如下:
create table mytable(
a varchar(3),
b bigint,
c int,
d int,
e datetime,
f varchar(20),
g varchar(10),
primary key(a, b, c, d))
ENGINE=InnoDB;
它目前包含1.5亿行,表大小估计为19 is。
Python代码如下:
import MySQLdb
database = MySQLdb.connect
在Db跟踪中,有一个查询需要很长时间,有人解释了它means.Seems是什么。这是一个非常通用的oracle查询,与我的定制表无关。
select condition from cdef$ where rowid=:1;
在trc文件(DB跟踪)中的多个位置发现相同的查询,其中一个有大量的运行时间。那么,有什么解决方案可以避免花费这么长的时间呢?我正在使用11g版本的oracle。
我在用PL/SQL编写查询时遇到了问题。我很清楚我在SQL Server T-SQL中是如何做到这一点的,我只是不太擅长使用Oracle。
它必须是SQL字符串,而不是过程。
以下是我需要的查询类型。这不是实际的查询,但看到它的翻译应该会给我需要的东西。
您可以看到,第一个查询是第二个查询的子集,如果它占基本数据的5%以上,则返回结果。
考虑到这一点,如果有更好的方法来写它,我也会感兴趣的!
DECLARE @x int
SELECT @x = COUNT(*) * 20
FROM table1
WHERE table1.a=1
AND table1.b=2
AND table1.c=3
D
我正在尝试从一个包含两个日期的表中进行选择,数据类型是Oracle 11g中的开始日期和结束日期。我写道:
SELECT *
FROM mytable
WHERE date_received BETWEEN <cfqueryparam cfsqltype="cf_sql_date"
value="#CreateODBCDate(Form.startDate)#">
AND <cfqueryparam cfsqltype="cf_sql_date"
众所周知,Oracle中的IN子句仅限于1000个元素。
有一点我不确定,如果它们是查询的结果,我是否可以超过1000。
例如,如果我们假设:
SELECT TYPEID FROM SECONDTABLE WHERE DATE < YESTERDAY
假设查询返回4300个值,我们可以写:
SELECT
ID
FROM
FIRSTTABLE
WHERE
TYPEID IN (SELECT TYPEID FROM SECONDTABLE WHERE DATE < YESTERDAY)
?因为IN包含一个开始语句(但4300一旦“展开”)。
我们使用ODP.NET在Oracle数据库上执行查询,通常它工作得很好。但是,有一个特定的数据库和该数据库中的一个特定视图,我们无法从.NET完成查询。例如:
SELECT some_varchar_field FROM the_view WHERE ROWNUM < 5;
如果我从Oracle SQL developer中执行此查询,它将在不到一秒的时间内完成。如果我使用ODP.NET从我们的.NET应用程序执行相同的查询,它将挂起,并最终生成"ORA-03135: connection lost contact“错误。我认为将它限制在几行就可以消除它作为FetchSize问题
我有一个临时表,它有两个列-键和值:
temp_tbl:
key value
---|-----
k1 | a','b
下面是在temp_tbl中存储值的insert脚本:
insert into temp_tbl values ('k1', 'a'+char(39)+char(44)+char(39)+'b');
现在,我想尝试从另一个表(actual_tbl)中获取记录,如下所示:
select * from actual_tbl where field_value in
(select value from tamp_tb
有人能解释为什么在使用SQL时,下面的第一个查询只需4分钟,而第二个只需2秒?唯一的区别是第一行中的"orders“前缀。
第一次查询(4分钟)
select top 1 orders.*
from (
select oi.OrderItemID, o.*
from OrderItem oi
inner join [Order] o on oi.OrderID = o.OrderID
where o.OrderStatusID = 1
) orders
left join GoalProcessingStatus gps on (gps.GoalID =
我有一个名为t的表( abc varchar2(50),xyz varchar2(50),..etc),并且在列abc上启用了索引。Oracle对userfunction(a)使用索引,这需要很长时间。这是一个动态查询形式,可以有另一个条件,必须在abc上使用索引,所以我不想使用no_index提示。
select *from t
where
userfunction(a) = 0
and exists (select 1 from tab where t.abc='' ...etc)
and ..etc
我试图通过将函数移到嵌套查询来重写带有嵌套查询的查询,但是oracle
版本: PostgreSQL 10.3
PostgreSQL支持输出JSON结果。这似乎是我的应用程序要求的黄金匹配。
现在,在将我的应用程序代码倒转到基准测试之前,我使用一些EXPLAIN ANALYZE进行了一些查询,几乎不需要花费任何额外的费用。
简单的例子:
explain analyze
select id, name, phonenumber, email
from contacts
order by name
limit 27
offset 2;
QUERY PLAN
我的应用程序使用使用DataReaders的ADO.NET编写的自定义数据访问层与Oracle和SQL Server数据库进行交互。现在,我遇到了GUID(我们用于主键)和Oracle RAW数据类型之间的转换问题。插入到oracle中是很好的(我只在System.Guid上使用ToByteArray()方法)。当我从数据库加载记录时,问题是转换回System.Guid。目前,我使用从ADO.NET获得的字节数组来传递给System.Guid的构造函数。这似乎是有效的,但出现在数据库中的Guids与我以这种方式生成的Guids不对应。
我不能更改数据库架构或查询(因为它已在SQL Server
我有下面的python代码,它在Oracle数据库中运行多个SQL查询,并将它们组合到一个数据帧中。
查询存在于一个txt文件中,并且每一行都是一个单独的SQL查询。循环按顺序运行查询。我想取消任何运行超过10秒的SQL查询,以免在数据库中产生开销。下面的代码实际上没有给出我想要的结果。更具体地说,这段代码真的对我的问题有帮助:
if (time.time() - start) > 10:
connection.cancel()
完整的python代码如下。它可能是一个oracle函数,可以调用它来取消查询。
import pandas as pd
im
我有一个Oracle9数据库,我的Delphi2006应用程序使用下面这样的SQL语句将数据从该数据库读取到TSimpleDataSet中(当然,实际上它更复杂):
select * from myschema.mytable where ID in (1, 2, 4)
我的应用程序在一天中经常启动并执行这个查询,每次在in子句中使用不同的值。
我的DBA已经通知我,这会在数据库服务器上产生额外的负载,因为查询在每次运行时都会被重新解析。他们建议使用,而不是在客户端构建SQL语句。
我很熟悉在Delphi中使用参数化查询,但从上面链接的文章中我得到的感觉并不完全是绑定变量。此外,我还需要这些准