Tag: ora 00904

如何在SELECT语句中使用BOOLEANtypes

我有BOOLEAN参数中的PL / SQL函数: function get_something(name in varchar2, ignore_notfound in boolean); 这个function是第三方工具的一部分,我不能改变这个。 我想在这样的SELECT语句中使用这个函数: select get_something('NAME', TRUE) from dual; 这不起作用,我得到这个例外: ORA-00904:“真”:无效的标识符 据我所知,关键字TRUE不被识别。 我怎样才能做这个工作?

是否有可能查询逗号分隔列的特定值?

我有(并没有拥有,所以我不能改变)一个布局类似于这个表。 ID | CATEGORIES ————— 1 | c1 2 | c2,c3 3 | c3,c2 4 | c3 5 | c4,c8,c5,c100 我需要返回包含特定类别ID的行。 我通过用LIKE语句编写查询开始,因为值可以在string中的任何位置 SELECT id FROM table WHERE categories LIKE '%c2%'; 会返回第2和第3行 SELECT id FROM table WHERE categories LIKE '%c3%' and categories LIKE '%c2%'; 再次让我行2和3,但不是第4行 SELECT id FROM table WHERE categories LIKE '%c3%' or categories LIKE […]

在where子句中使用“caseexpression列”

SELECT ename , job , CASE deptno WHEN 10 THEN 'ACCOUNTS' WHEN 20 THEN 'SALES' ELSE 'UNKNOWN' END AS department FROM emp /* !!! */ WHERE department = 'SALES' 这失败了: ORA-00904:“%s:无效标识符” 有没有办法在Oracle 10.2 SQL中克服这个限制? 如何在where子句中使用“caseexpression列”?

ORA-00904:无效的标识符

我尝试使用Oracle数据库编写以下内部连接查询: SELECT Employee.EMPLID as EmpID, Employee.FIRST_NAME AS Name, Team.DEPARTMENT_CODE AS TeamID, Team.Department_Name AS teamname FROM PS_TBL_EMPLOYEE_DETAILS Employee INNER JOIN PS_TBL_DEPARTMENT_DETAILS Team ON Team.DEPARTMENT_CODE = Employee.DEPTID 这给出了以下错误: INNER JOIN PS_TBL_DEPARTMENT_DETAILS Team ON Team.DEPARTMENT_CODE = Employee.DEPTID * ERROR at line 4: ORA-00904: "TEAM"."DEPARTMENT_CODE": invalid identifier 一个表的DDL是: CREATE TABLE "HRMS"."PS_TBL_DEPARTMENT_DETAILS" ( "Company Code" VARCHAR2(255), "Company Name" VARCHAR2(255), "Sector_Code" […]

在WHERE子句中使用别名

我有一个查询是为了向我显示表A中最近没有更新的任何行。 (每行应在“month_no”后2个月内更新): SELECT A.identifier , A.name , TO_NUMBER(DECODE( A.month_no , 1, 200803 , 2, 200804 , 3, 200805 , 4, 200806 , 5, 200807 , 6, 200808 , 7, 200809 , 8, 200810 , 9, 200811 , 10, 200812 , 11, 200701 , 12, 200702 , NULL)) as MONTH_NO , TO_NUMBER(TO_CHAR(B.last_update_date, 'YYYYMM')) as UPD_DATE FROM […]