Tag: oracle

我如何决定何时使用正确的连接/左连接或内部连接或如何确定哪个表在哪一边?

我知道连接的用法,但是当我无法决定哪一个连接是合适的, 左边或右边的时候,我有时遇到这样的情况。 这里是我被卡住的查询。 SELECT count(ImageId) as [IndividualRemaining], userMaster.empName AS ID#, CONVERT(DATETIME, folderDetails.folderName, 101) AS FolderDate, batchDetails.batchName AS Batch#, Client=@ClientName, TotalInloaded = IsNull(@TotalInloaded,0), PendingUnassigned = @PendingUnassigned, InloadedAssigned = IsNull(@TotalAssigned,0), TotalProcessed = @TotalProcessed, Remaining = @Remaining FROM batchDetails Left JOIN folderDetails ON batchDetails.folderId = folderDetails.folderId Left JOIN imageDetails ON batchDetails.batchId = imageDetails.batchId Left JOIN userMaster ON imageDetails.assignedToUser […]

如何描述关系数据库中的性能问题?

我有一个关系数据库中运行的查询不符合用户的期望。 我应该提供哪些信息以及应该避免哪些信息,以便在本网站上获得有效的帮助?

如何将逗号分隔值转换为oracle中的行?

这是DDL – create table tbl1 ( id number, value varchar2(50) ); insert into tbl1 values (1, 'AA, UT, BT, SK, SX'); insert into tbl1 values (2, 'AA, UT, SX'); insert into tbl1 values (3, 'UT, SK, SX, ZF'); 注意,这里的值是用逗号分隔的string。 但是,我们需要如下的结果 – ID VALUE ————- 1 AA 1 UT 1 BT 1 SK 1 SX 2 […]

如何在oracle中将csv转换为表

如何创build一个以csv值forms传递结果的包。 select * from table(schema.mypackage.myfunction('one, two, three')) 应该返回 one two three 我尝试了一些问题汤姆,但只适用于SQLtypes。 我正在使用oracle 11g。 有内置的东西吗?

为什么我不能在dynamicSQL中的DDL / SCL语句中使用绑定variables?

我正在尝试使用绑定variables在dynamicSQL中执行SQL命令: — this procedure is a part of PL/SQL package Test_Pkg PROCEDURE Set_Nls_Calendar(calendar_ IN VARCHAR2) IS BEGIN EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_CALENDAR = :cal' USING IN calendar_; END Set_Nls_Calendar; 然后在客户端,我试图调用该过程: Test_Pkg.Set_Nls_Calendar('Thai Buddha'); 但是这得到了我ORA-02248: invalid option for ALTER SESSION 。 而我的问题是: 为什么我不能在dynamicSQL中的DDL / SCL语句中使用绑定variables?

确定相关tnsnames.ora文件的位置

我安装了32位和64位Oracle 11g驱动程序。 我search我的电脑寻找名称为“tnsnames.ora”的文件,并在以下位置find3个: 1. C:\Oracle\product\11203_32bit\CLIENT_1\NETWORK\ADMIN 2. C:\Oracle\product\11203_64bit\CLIENT_1\NETWORK\ADMIN 3. C:\Windows\TNS tnsnames.ora文件的第三个位置的存在让我感到惊讶。 我在PC上安装了以下Oracle客户端: "C:\Program Files (x86)\Quest Software\Toad for Oracle 11.6\Toad.exe" "C:\Program Files\Devart\dbForge Studio Express for Oracle\dbforgeoracle.exe" 根据每个程序(程序文件(x86)与c:\ Program Files文件)的位置,这表明Toad是一个32位程序,应该使用32位驱动程序,而dbForge应该使用64位驱动程序。 dbForge似乎在位置#2或#3中使用tnsnames.ora文件。 我知道这是通过系统地重命名除tns文件之外的所有文件,然后检查从该文件读取的连接名是否可用,当试图从应用程序创build一个新的连接。 但是,TOAD似乎只识别位置#3中的tnsnames.ora文件,并且根本不能识别位置2中的tnsnames.ora文件! (因为这是一个32位的程序,我没有想到它会识别位置2的tns文件,情况就是如此)。 为了总结TOADtesting的清晰度,TOAD只识别位置3的tns文件。 其他同事在他们的机器上没有位置3的tns文件。 我不知道我为什么这样做。 当我运行蟾蜍,它显示以下2家,与32位家作为积极的一个。 OraClient11g_home1 (11.2.0.3) ORACLE_HOME:C:\app\C39293\product\11.2.0\client_1 ORACLE_HOME_NAME:OraClient11g_home1 ORACLE_HOME_KEY:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient11g_home1 ORACLE_SID: NLS_LANG:AMERICAN_AMERICA.WE8MSWIN1252 SQLPATH: LOCAL: Client DLL:C:\app\C39293\product\11.2.0\client_1\oci.dll TNSNames.ora: SQLNet.ora: LDAP.ora: Login.sql: GLogin.sql: In system PATH:No Home […]

Oraclesearch所有表的所有列的string

我需要在我们的oracle数据库中search所有表和列中的string。 我有我在网上find的下面的查询,但是当我执行它时,我得到以下错误 任何帮助表示赞赏 ORA-06550: line 6, column 31: PL/SQL: ORA-00904: "COLUMN_NAME": invalid identifier ORA-06550: line 6, column 12: PL/SQL: SQL Statement ignored ORA-06550: line 8, column 30: PLS-00364: loop index variable 'T' use is invalid ORA-06550: line 7, column 4: PL/SQL: Statement ignored ORA-06550: line 12, column 38: PLS-00364: loop index variable 'T' use is […]

SQL:多次重复一个结果行,并对行进行编号

我有一个像这样的结果的SQL查询: value | count ——+—— foo | 1 bar | 3 baz | 2 现在我想扩大这个,使得每一行count大于1的行多次出现。 我也需要这些行进行编号。 所以我会得到: value | count | index ——+——-+—— foo | 1 | 1 bar | 3 | 1 bar | 3 | 2 bar | 3 | 3 baz | 2 | 1 baz | 2 | 2 我必须在所有主要数据库(Oracle,SQL Server,MySQL,PostgreSQL等等)上进行这项工作。 […]

没有Order By子句的SQL Select语句的顺序

据我所知,从关系数据库理论来看,没有order by条款的select语句应该被认为没有特定的顺序。 但实际上,在SQL Server和Oracle(我在这两个平台上testing过)中,如果我从一个没有order by子句的表中多次查询,我总是以相同的顺序得到结果。 这种行为可以依靠吗? 任何人都可以帮忙解释一下?

在oracle中使用LISTAGG来返回不同的值

我正在尝试使用Oracle中的LISTAGG函数。 我想只获得该列的不同值。 有没有一种方法可以在不创build函数或过程的情况下获得唯一的值? col1 col2 Created_by 1 2史密斯 1 2约翰 1 3 Ajay 1 4 Ram 1 5杰克 我需要selectcol1和col2的LISTAGG (不考虑第3列)。 当我这样做,我得到这样的结果LISTAGG : [2,2,3,4,5] 我需要在这里删除重复的“2” 我只需要col1与col1不同的值。