Oracle 创建表作为 select with count max 条件

发布于 2024-11-03 16:29:11 字数 427 浏览 1 评论 0原文

我遇到了 Oracle 问题,这是我的选择:

create table new_table as 
select
idprod as product_id, descr as description
from old_table p where updateNum = (select max(updateNum) from old_table pp where pp.idprod = p.idprod);

此查询给了我一个一般错误,没有任何解释。 SQL 开发人员告诉我:

“命令中从第 7 行开始出现错误:[...] 错误报告:
SQL命令:创建表
失败:警告:执行完成,但出现警告”

,但创建表且其中的数据似乎是正确的。

一些提示?

I've got an Oracle problem, here is my select:

create table new_table as 
select
idprod as product_id, descr as description
from old_table p where updateNum = (select max(updateNum) from old_table pp where pp.idprod = p.idprod);

this query gives me one generic error with no explanation. SQL Developer say me:

"Error starting at line 7 in command: [...] Error report:
SQL Command: create table
Failed: Warning: execution completed with warning"

but create the table and the data inside seems to be correct.

Some hints?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

擦肩而过的背影 2024-11-10 16:29:11

旧版本的 SQL Developer 有一个错误,使它们在 CREATE TABLE 后发出类似的警告:请参阅 此 OTN 论坛帖子

由于表已创建并填充了正确的数据,因此 CREATE TABLE 语句是正确的。如果您想确定,请尝试从 SQL*Plus 执行该语句。

Older versions of SQL Developer have a bug which makes them issue a similar warning after a CREATE TABLE: see this OTN Forums post.

Since the table is created and populated with the correct data, the CREATE TABLE statement is correct. If you want to be sure, try executing the statement from SQL*Plus.

云仙小弟 2024-11-10 16:29:11

每当您在包含 NULL 的列上使用函数时,Oracle 都会在 CREATE TABLE 语句中发出“失败:警告:执行已完成,但带有警告”。当您使用 CASE WHEN 或 DECODE 并且不使用默认值来处理 NULL(例如,ELSE 0)时,通常会发生这种情况。这也是 https://forums.oracle 上所述的同一问题的解决方案。 com/forums/thread.jspa?threadID=723332

为了避免出现问题:请确保在 CREATE TABLE AS 中不要对包含 NULL 的列使用函数(例如 max、sum)。

Oracle issues the "Failed: Warning: execution completed with warning" in a CREATE TABLE statement whenever you use a function on a column with NULLs. This often happens when you use a CASE WHEN or DECODE and don't use a default to take care of the NULLs (e.g., ELSE 0). This is also the solution to the same problem stated on https://forums.oracle.com/forums/thread.jspa?threadID=723332.

To avoid problems: make sure you don't use a function (e.g., max, sum) on a column with NULLs in a CREATE TABLE AS.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文