oracle中defined,Oracle:专栏定义(Oracle: column ambigously defined)
Oracle:專欄定義(Oracle: column ambigously defined)
我收到以下錯誤。 據我所知,所有列都是由表名定義的,所以我不明白為什么我從Oracle數據庫中得到這個錯誤。
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
更新時間:2020-08-26 18:08
最滿意答案
只有拋出紅旗的東西,
ORDER BY offsakid desc
您在select中將一個字段別名為該名稱:
OFFSAK.id offsakid,
但它可能是您的某個表上的實際字段名稱,您應該按基礎字段排序 - 而不是別名。
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
相關問答
由于你沒有回答評論中的問題,我假設amount_paid列來自visitings表,因為student表看起來像維度表。 column ambiguity錯誤是由兩個表中的st_id列引起的。 所以SQL不知道你指的是哪個表的st_id 。 嘗試這個。 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
...
您在第一個派生表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
...
我認為這是ANSI風格連接的一個缺陷。 使用DBMS_XPLAN來查找舊數據庫中正在過濾哪個表。 或者更好的是,從業務邏輯中找出他們應該查詢的內容。 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
...
正如評論的那樣,我認為Hibernate將默認為spatialDialect,它將是可用的第一個,并且在那種情況下它是Oracle,盡管在persistence.xml中指定了什么。 我找到的第一個解決方法是在實體中注釋對于GeometryUserType我將使用Postgis方言,如: @TypeDefs({@TypeDef(name="org.hibernatespatial.GeometryUserType",
parameters={@org.hibernate.anno
...
雖然VARCHAR Infomix類型限制為255個字符,但我會使用LVARCHAR類型,限制為32,739字節。 第二個問題是(1024 char) ,這意味著Oracle可以保存1024個字符。 在像UTF-8這樣的編碼中,這不等于1024字節。 例如波蘭語字母:????要保存2個字節,因此帶有1024個波蘭字母的文本將使用2048個字節。 Informix使用字節長度,因此您必須知道您的編碼和數據。 對于UTF8編碼的波蘭語文本,我將varchar2(1024 char)轉換為lvarcha
...
我無法直接使用該功能。 解決方法是使用oracle命令: using (DealerContext objectContext = new DealerContext())
{
string connString = objectContext.Database.Connection.ConnectionString;
using (var conn = new OracleConnection(connString
...
只有拋出紅旗的東西, ORDER BY offsakid desc
您在select中將一個字段別名為該名稱: OFFSAK.id offsakid,
但它可能是您的某個表上的實際字段名稱,您應該按基礎字段排序 - 而不是別名。 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 [...];
但是,您可能希望檢查這是一種合適的方法,因為SQL Server和Oracle有很大不同。 你不能在普通的SQL中使用PL / SQL表( 至少在12c之前 ),甚至在你的程序中也是如此,所以你可能需要一個模式級別的類型而不是PL / SQ
...
正如您已經發現的那樣, DATEPART是一個SQL Server功能,而不是Oracle功能。 您已經顯示的替代方法to_number(to_char(v_ExpireTime, 'YY'))雖然會給你一個兩位數的值,所以如果你的約會的年份部分是1899 ,它將只返回99 ,所以你不會得到一個匹配。 您可以使用四位數年份日期格式YYYY而不是YY 。 另一種選擇是使用提取功能 : IF extract(year from v_ExpireTime) = 1899 THEN ...
As you
...
如果您使用的是Oracle 11g2,unpivot和listagg的組合可以提供幫助,請嘗試此查詢 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
...
總結
以上是生活随笔為你收集整理的oracle中defined,Oracle:专栏定义(Oracle: column ambigously defined)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 编程常用单词
- 下一篇: 破产问题 (The Bankruptcy