oracle中defined,Oracle:专栏定义(Oracle: column ambigously defined)
Oracle:專欄定義(Oracle: column ambigously defined)
我收到以下錯(cuò)誤。 據(jù)我所知,所有列都是由表名定義的,所以我不明白為什么我從Oracle數(shù)據(jù)庫(kù)中得到這個(gè)錯(cuò)誤。
OCIError: ORA-00918: column ambiguously defined: SELECT * FROM (
SELECT raw_sql_.*, rownum raw_rnum_
raw_sql_
WHERE rownum <= 25
)
WHERE raw_rnum_ > 0
I am getting the following error. As far as I can see are all columns defined by table name, so I do not see why I get this error from my Oracle database.
OCIError: ORA-00918: column ambiguously defined: SELECT * FROM (
SELECT raw_sql_.*, rownum raw_rnum_
raw_sql_
WHERE rownum <= 25
)
WHERE raw_rnum_ > 0
原文:https://stackoverflow.com/questions/35706662
更新時(shí)間:2020-08-26 18:08
最滿意答案
只有拋出紅旗的東西,
ORDER BY offsakid desc
您在select中將一個(gè)字段別名為該名稱:
OFFSAK.id offsakid,
但它可能是您的某個(gè)表上的實(shí)際字段名稱,您應(yīng)該按基礎(chǔ)字段排序 - 而不是別名。
Only thing that throws a red flag, the
ORDER BY offsakid desc
You alias one field to that name in your select:
OFFSAK.id offsakid,
But it could be an actual field name on one of your tables, and you should order by the underlying field - not the alias.
2016-02-29
相關(guān)問答
由于你沒有回答評(píng)論中的問題,我假設(shè)amount_paid列來自visitings表,因?yàn)閟tudent表看起來像維度表。 column ambiguity錯(cuò)誤是由兩個(gè)表中的st_id列引起的。 所以SQL不知道你指的是哪個(gè)表的st_id 。 嘗試這個(gè)。 select avg (v.visit_cost) as average_cost, s.st_fname, s.st_lname
from student s
inner join visitings v on s.st_id=v
...
您在第一個(gè)派生表SQL1選擇了兩次CLG_NUM和ENT_NUM FROM (
select DISTINCT
PRIMARY_MER_NUM ,
PRIMARY_EXT_MID ,
MER_DBA_NAM,
CLG_NUM, --1
ENT_NUM, --1
ENT_NAM,
MER_OPN_DTE,
MER_CLS_DTE,
MER_FST_DPST_DTE,
CLG_NUM, --2
ENT_NUM --2
from bi.t_mer_dim_na
這使得在外部選擇中選擇sql1
...
我認(rèn)為這是ANSI風(fēng)格連接的一個(gè)缺陷。 使用DBMS_XPLAN來查找舊數(shù)據(jù)庫(kù)中正在過濾哪個(gè)表。 或者更好的是,從業(yè)務(wù)邏輯中找出他們應(yīng)該查詢的內(nèi)容。 I think this was a bug with the ANSI style join. Use DBMS_XPLAN to find which table was being filtered in the old database. Or better still, work out from the business logic wh
...
正如評(píng)論的那樣,我認(rèn)為Hibernate將默認(rèn)為spatialDialect,它將是可用的第一個(gè),并且在那種情況下它是Oracle,盡管在persistence.xml中指定了什么。 我找到的第一個(gè)解決方法是在實(shí)體中注釋對(duì)于GeometryUserType我將使用Postgis方言,如: @TypeDefs({@TypeDef(name="org.hibernatespatial.GeometryUserType",
parameters={@org.hibernate.anno
...
雖然VARCHAR Infomix類型限制為255個(gè)字符,但我會(huì)使用LVARCHAR類型,限制為32,739字節(jié)。 第二個(gè)問題是(1024 char) ,這意味著Oracle可以保存1024個(gè)字符。 在像UTF-8這樣的編碼中,這不等于1024字節(jié)。 例如波蘭語字母:????要保存2個(gè)字節(jié),因此帶有1024個(gè)波蘭字母的文本將使用2048個(gè)字節(jié)。 Informix使用字節(jié)長(zhǎng)度,因此您必須知道您的編碼和數(shù)據(jù)。 對(duì)于UTF8編碼的波蘭語文本,我將varchar2(1024 char)轉(zhuǎn)換為lvarcha
...
我無法直接使用該功能。 解決方法是使用oracle命令: using (DealerContext objectContext = new DealerContext())
{
string connString = objectContext.Database.Connection.ConnectionString;
using (var conn = new OracleConnection(connString
...
只有拋出紅旗的東西, ORDER BY offsakid desc
您在select中將一個(gè)字段別名為該名稱: OFFSAK.id offsakid,
但它可能是您的某個(gè)表上的實(shí)際字段名稱,您應(yīng)該按基礎(chǔ)字段排序 - 而不是別名。 Only thing that throws a red flag, the ORDER BY offsakid desc
You alias one field to that name in your select: OFFSAK.id offsakid,
...
您無法插入集合 (例如PL / SQL表)。 您可以使用批量收集語法來填充集合: SELECT ColumnA, ColumnB
BULK COLLECT INTO tableVariableA
FROM physicalTable
WHERE [...];
但是,您可能希望檢查這是一種合適的方法,因?yàn)镾QL Server和Oracle有很大不同。 你不能在普通的SQL中使用PL / SQL表( 至少在12c之前 ),甚至在你的程序中也是如此,所以你可能需要一個(gè)模式級(jí)別的類型而不是PL / SQ
...
正如您已經(jīng)發(fā)現(xiàn)的那樣, DATEPART是一個(gè)SQL Server功能,而不是Oracle功能。 您已經(jīng)顯示的替代方法to_number(to_char(v_ExpireTime, 'YY'))雖然會(huì)給你一個(gè)兩位數(shù)的值,所以如果你的約會(huì)的年份部分是1899 ,它將只返回99 ,所以你不會(huì)得到一個(gè)匹配。 您可以使用四位數(shù)年份日期格式Y(jié)YYY而不是YY 。 另一種選擇是使用提取功能 : IF extract(year from v_ExpireTime) = 1899 THEN ...
As you
...
如果您使用的是Oracle 11g2,unpivot和listagg的組合可以提供幫助,請(qǐng)嘗試此查詢 WITH T(ID, SLOW, MEDIUM, FAST, SUPER_FAST) AS
(SELECT 1, 'Y', 'Y', 'N', 'Y' FROM DUAL
UNION ALL
SELECT 2, 'N','Y','N', 'Y' FROM DUAL
union all
SELECT 3, 'N','N','N', 'Y' FROM
...
總結(jié)
以上是生活随笔為你收集整理的oracle中defined,Oracle:专栏定义(Oracle: column ambigously defined)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 编程常用单词
- 下一篇: 破产问题 (The Bankruptcy