SQL新建查询时,表名没错,为啥说对象名无效

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL新建查询时,表名没错,为啥说对象名无效相关的知识,希望对你有一定的参考价值。

如上图
为什么我新建查询时,会出现对象STU1无效呢?表的名明明就是STU1,而且里面的数据也都在。之前都可以,就是刚才SQL2008突然自动关闭,然后就这样了。

1.以sql2012为例,我们在sql查询时,有时会遇到这种情况:查询失败,提示“对象名 xxx 无效”。

2.原因是例子中的examTest只是表名,没有指定数据库名,加上数据库名和所有者名就可以了。

3.如果只加数据库名是不行的,因为数据库里的表是按角色管理的,不是所有角色都可以查询某个表,所以必须只能所有者。

4.如果不在sql中指明数据库名和所有者名,也是可以的。这时就需要在工具上设置数据库。

5.把当前数据库设置为 test之后,再查询就同样不会出问题了。

参考技术A

SQL新建查询时,表名没错,对象名无效是因为没有指定数据库名,加上数据库名和所有者名就可以了。

SQL是具有数据操纵和数据定义等多种功能的数据库语言,这种语言具有交互性特点,能为用户提供极大的便利,数据库管理系统应充分利用SQL语言提高计算机应用系统的工作质量与效率。SQL语言不仅能独立应用于终端,还可以作为子语言为其他程序设计提供有效助力,该程序应用中,SQL可与其他程序语言一起优化程序功能,进而为用户提供更多更全面的信息。

扩展资料:

在大数据时代中,数据库系统的数据类型与规模在不断扩增,这给数据库管理带来了一定的挑战。在社会生产生活中,对于数据库的应用范围逐步增大,提升数据库开发及应用的效率,是保障我国社会生产生活高效运转的关键。

SQL作为一种操作命令集, 以其丰富的功能受到业内人士的广泛欢迎, 成为提升数据库操作效率的保障。SQL Server数据库的应用,能够有效提升数据请求与返回的速度,有效应对复杂任务的处理,是提升工作效率的关键。

参考技术B 你看左上角显示的是master,说明你当前的数据库是master库,这是数据库的默认系统库,一般通常进入时窗口都选的这个库,点选这个改成你自己的即可本回答被提问者采纳 参考技术C 首先你的表实在那个Student里面吧 左上角的master 是系统数据库 左上角的表示当前的数据库 所以查询时候找不到。 加一句
use student
go
参考技术D use 数据库名。最执行查询试试

在 oracle 中批量插入时表名无效

【中文标题】在 oracle 中批量插入时表名无效【英文标题】:Invalid table name while bulk insert in oracle 【发布时间】:2016-12-13 14:38:18 【问题描述】:

我正在尝试使用 Bulk Insert 查询将值插入 Oracle 表,但出现以下错误

ORA-00903: invalid table name
00903. 00000 -  "invalid table name"
*Cause:    
*Action:
Error at Line: 4 Column: 5

这是我的查询

BULK INSERT TEST1.STUDENT
    FROM 'C:\Users\Alan\Desktop\STUDENT.txt'
        WITH
(
            FIELDTERMINATOR = '\t',
            ROWTERMINATOR = '\n'
);

为什么会出现这个错误。查询有问题吗?请帮忙。谢谢

更新

我将文件格式更改为CSV,并在下面写了查询

LOAD DATA
INFILE 'C:\Users\Alan\Desktop\STUDENT.csv'
INTO TABLE TEST1.STUDENT
FIELDS TERMINATED BY ","
(ID,
NAME);

但上面的查询给出了

ORA-00928: missing SELECT keyword
00928. 00000 -  "missing SELECT keyword"
*Cause:    
*Action:
Error at Line: 16 Column: 2

上面的语法有什么问题?

【问题讨论】:

这根本不是 Oracle 语法。 【参考方案1】:

这根本不是 Oracle 语法。如果您需要将数据从文件加载到表,请使用SQLoader 或External table 关于External table 和SQLoader 的一些文档

如果您使用的是 SQLDeveloper,您还可以使用导入工具。

也请看一下thread。

[编辑

LOAD DATA
INFILE 'C:\Users\Alan\Desktop\STUDENT.csv'
INTO TABLE TEST1.STUDENT
FIELDS TERMINATED BY ","
(ID,
NAME);

这不是查询。这是控制文件的内容。请将其保存到文件 load.csv 然后运行 ​​cmd(如果你在 Linux 上,则运行 shell)并输入:

sqlldr user/pass control=load.ctl

您可以找到一些示例here。

【讨论】:

我已根据 SO 答案使用更新后的查询更新了我的帖子,但出现错误。请查看更新的查询和错误。更新后的查询有什么问题?谢谢 @Lara 我已经编辑了答案并添加了如何运行 SQLoader 的示例。您使用什么客户端/IDE? 知道了。谢谢

以上是关于SQL新建查询时,表名没错,为啥说对象名无效的主要内容,如果未能解决你的问题,请参考以下文章

java.sql.SQLException [Microsoft] [ODBC SQL Server Driver] [SQL Server] 对象名“表名”无效

sqlserver2008新建查询,表名下出现红波浪线,显示“表名无效”,但仍然可以查询得到结果

SQL Server2019数据库查询所有数据库名表名表结构表字段主键方法演示,执行sql提示对象名‘user_tab_columns‘ ‘user_cons_columns‘ 无效问题解决

ms sql变量问题:提示参数对象无效!

SQL查询问题:对象名 'dbo.Orders' 无效。

SQL数据库时提示对象名'XXX' 无效