SQL新建查询时,表名没错,为啥说对象名无效
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL新建查询时,表名没错,为啥说对象名无效相关的知识,希望对你有一定的参考价值。
如上图
为什么我新建查询时,会出现对象STU1无效呢?表的名明明就是STU1,而且里面的数据也都在。之前都可以,就是刚才SQL2008突然自动关闭,然后就这样了。
1.以sql2012为例,我们在sql查询时,有时会遇到这种情况:查询失败,提示“对象名 xxx 无效”。
2.原因是例子中的examTest只是表名,没有指定数据库名,加上数据库名和所有者名就可以了。
3.如果只加数据库名是不行的,因为数据库里的表是按角色管理的,不是所有角色都可以查询某个表,所以必须只能所有者。
4.如果不在sql中指明数据库名和所有者名,也是可以的。这时就需要在工具上设置数据库。
5.把当前数据库设置为 test之后,再查询就同样不会出问题了。
参考技术ASQL新建查询时,表名没错,对象名无效是因为没有指定数据库名,加上数据库名和所有者名就可以了。
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‘ 无效问题解决