- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个在 visual studio 的查询工具中执行的查询,但出现以下错误。
ORA-00972: 标识符太长。
现在我相信我知道 oracle 有 30 字节的限制,但这是我要执行的查询。
select
"cef_tsroma.tsrido" as "truck",
"cef_tsroma.dosvlg" as "rideNumber",
"cef_v_cw_shipment.shipmentNumber" as "shipmentNumber"
from
"cef_tsroma" left outer join "cef_v_cw_shipment" on "rideNumber" = "shipmentNumber"
where
"truck" = '104490'
不幸的是,我无法更改数据库结构本身,因为它由另一家对数据库规范化一无所知的公司管理,或者处于他们根本不能或不应该的情况下。我不知道。请务必考虑到“cef_v_cw_shipment”是一个 View 。
truck = '104490' 只是用于测试目的的示例整数。我尝试了各种解决方案,但似乎无法找到正确的方法(或寻找正确的方法)。
真诚的,我。
附言对不起,如果这是一个愚蠢的问题。
编辑:
select
"cef_tsroma"."tsrido" as "truck",
"cef_tsroma"."dosvlg" as "rideNumber",
"cef_v_cw_shipment"."shipmentNumber" as "shipmentNumber"
from
"cef_tsroma" left outer join "cef_v_cw_shipment" on "rideNumber" = "shipmentNumber"
where
"truck" = '104490'
“rideNumber”现在是一个无效的标识符,我将很快返回。我想我以错误的方式给它起了别名,但我不确定。去找出答案。
编辑2:
select
ct.tsrido as "truck",
ct.dosvlg as "rideNumber",
cs.shipmentNumber as "shipmentNumber"
from "cef_tsroma" ct
left outer join "cef_v_cw_shipment" cs
on "rideNumber" = "shipmentNumber"
where "truck" = '104490'
我现在使用这种语法,因为它比以前的语法更清晰、更容易理解。但是,我仍然遇到 ORA-00904:“rideNumber”:无效标识符(这可能对连接行中的 shipmentNumber 也很重要。试图弄清楚这一点,谷歌返回命名提示:没有成功。仍在搜索。
编辑3:
select
ct.tsrido as truck,
ct.dosvlg as rideNumber,
cs.shipmentNumber as shipment
from
"cef_tsroma" ct
left outer join
"cef_v_cw_shipment" cs
on
ct.dosvlg = cs.shipmentNumber
where
truck = '104490'
现在按照建议,这是当前的语法。它当前返回错误消息:
错误ORA-00904: "CS"."SHIPMENTNUMBER": 无效标识符
对不起,我没有设计这个数据库> ):
Edit4/解决方案?
奇怪的是,这似乎有效。
select ct."tsrido", ct."dosvlg", cs."shipmentNumber" as shipmentnumber
from "cef_tsroma" ct
left outer join "cef_v_cw_shipment" cs
on ct."dosvlg" = cs."shipmentNumber"
where ct."tsrido" = '104956';
最佳答案
引号是错误的。 "cef_tsroma.tsrido"应该是 "cef_tsroma"."tsrido"...
在 edit2 上:新名称(别名)在 WHERE
或 JOIN
子句中没有影响。举个例子,表 DUAL
的列 X
可以重命名,但必须在 WHERE
子句中使用旧名称进行寻址:
SELECT dummy AS "myNewName" FROM dual WHERE "myNewName" = 'X';
-- ORA-00904: "myNewName": invalid identifier
SELECT dummy AS "myNewName" FROM dual WHERE dummy = 'X';
-- X
在 edit3 上:您的表名和列名看起来像普通的 Oracle 名称,不区分大小写。所以你可以删除所有的双引号:
select ct.tsrido as truck,
ct.dosvlg as ridenumber,
cs.shipmentNumber as shipmentnumber
from cef_tsroma ct
left join cef_v_cw_shipment cs on ct.dosvlg = cs.shipmentnumber
where ct.truck = '104490';
更详细地解释:Oracle 表名和列名通常不区分大小写。 Oracle 以大写形式存储它们,但您可以在查询中使用小写、大写或任意组合。
如果用双引号将表名或列名括起来,这会突然改变。然后 Oracle 坚持使用完全相同的拼写。
因此,在您的情况下,表/ View "cef_tsroma"
不存在,但是 cef_tsroma
或 CEF_TSROMA
或 “CEF_TSROMA”
确实...
关于sql - ORA-00972 : Identifier is too long,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14218695/
更新:添加关于 Hashable 的相同错误 我已经创建了一个 Identifiable 兼容协议(protocol)和兼容结构。然后,当我创建列表并在 ForEach 中引用它时,我收到错误 Typ
这只是我偶然发现的例子! 我正在使用 cout与 operator // imports the declaration of std::cout using namespace std; // ma
我有一些表,我使用 MySQL Workbench 创建了 role_has_action 表。 创建的字段是:(role_id,action_id,action_controller_id): (为
我有一个 codesign 无法完全验证的应用程序,因为它“不满足其指定的要求”。第一次检查返回“在磁盘上有效”,所以没关系。 codesign -dvvvv -r- PATH_TO_APP 告诉我要
我正在使用 Java SDK 创建 SAS 来访问 blob。这是代码: SharedAccessBlobPolicy policy = new SharedAccessBlobPolicy(); p
#include "stdafx.h" #include #include #include #include #include using namespace std; #define T
我在代码中看到了这两种方法。你能解释一下这两者有什么区别吗?正如我认为它与 C++ 完成命名空间查找的方式有关,您能否也提供一些相关信息,或者提供一个好的文档的链接?谢谢。 最佳答案 示例: #inc
我一直在使用一个工具 sbconstants从我的 Xcode 项目中的 Storyboard 标识符和重用标识符创建外部常量。 我已将包含这些常量的所有声明的 header #imported 到项
我想知道 bundle Identifier(在 info.plist 中)之间的区别。以及产品 Bundle Identifier(在 Build Setting -> Packaging -> P
我有课Identifier它本质上是 UUID 的类型安全包装器(因此类 Foo 包含 Identifier )。 FooStore类有一个方法 List> bulkReadIdentifiers()
在 Go 中,公共(public)名称以大写字母开头,私有(private)名称以小写字母开头。 我正在编写一个不是库的程序,它是一个单独的包。是否有任何 Go 习语规定我的标识符应该全部公开还是全部
我有一个页面 url,它看起来像: http://mydomain.com/nodes/32/article/new?return=view 安装 tomcat 7 后,尝试访问它时出现此异常: /n
我正在学习以下教程: http://www.appcoda.com/ios7-programming-ibeacons-tutorial/ 但是,我没有使用 iPhone 作为信标,而是使用制造商(R
我在为我的 iPhone 应用程序的下一版本上传 .app 文件时收到此错误“Bundle Identifier differents from prior bundle identifier”。 注
Scene 1, Layer 'script', Frame 1, Line 9 1084: Syntax error: expecting identifier before this. Sc
升级到 Xcode 7 后,我注意到 CFBundleIdentifier 已开始指向在 Build Settings/Packaging 中找到的产品捆绑标识符,而不是 Info.Plist 中的捆
关闭。这个问题需要debugging details .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 5年前关闭。 Improve this question 我在
我使用 Apache DBCP 来获取连接池,我每次都使用 PoolingDataSource 来获取连接。当我向数据库中插入一个对象时,它工作得很好,但是当我尝试从数据库中选择一个元素时,就会出现问
由于我项目的 react-native 版本 (0.44.3),我正在尝试在版本 0.6.4 中安装包 react-native-today-widget,我能够成功安装包: yarn add rea
之前有人问过这个问题,我已经查看了所有其他 stackoverflow 主题的答案,但我无法解决这个问题。 我的应用程序在所有平台的模拟器中运行良好,但是当我在我的设备上运行该应用程序时,我收到错误代
我是一名优秀的程序员,十分优秀!