我有一个Oracle SQL数据库,我上传到Oracle上有两个脚本,一个包含表,另一个包含注册表。
我有一个有2列的表DEPARTMENTS,CODE和NAME。
在Oracle 10g SQL home > SQL workshop > SQL commands中,我输入以下语句:
SELECT CODE, NAME
FROM DEPARTMENTS结果是
“无数据发现”
我无法在Oracle10g或livesql.oracle.com中正确检索结果。
我的陈述不正确吗?不是检索上传的数据吗?
发布于 2022-06-24 19:33:20
结果实际上应该是“没有选择行”,而不是“没有找到数据”。
您说您有两个脚本;我猜想其中一个脚本包含这样的内容:
SQL> create table departments
2 (code number,
3 name varchar2(20));
Table created.基本上,你创建了一个空表。如果你质疑它,里面什么都没有:
SQL> select code, name from departments;
no rows selected因此,第二个脚本很可能包含填充在第一个脚本中创建的表的语句。这就是你所谓的“登记处”吗?
SQL> insert into departments (code, name)
2 select 1, 'Accounting' from dual union all
3 select 2, 'Finance' from dual;
2 rows created.让我们重复前面的select语句:
SQL> select code, name from departments;
CODE NAME
---------- ----------
1 Accounting
2 Finance
SQL>对,现在我们得到了结果。
另一方面,您可能实际上运行了两个脚本,创建了表和插入的行,但是在第二个脚本的末尾没有提交。如果然后打开一个新会话(在Oracle 10g SQL home > SQL workshop > SQL commands中),那么您会看到表(因为create table是一个DDL,它修改了数据字典,所以您编写的select没有返回"ORA-00942: table或view不存在“),但是insert是一个DML,您必须使用COMMIT -否则只有运行insert的会话才会看到数据。
最后,检查insert语句是否成功完成;如果没有,则有可能没有插入任何内容,并且必须首先修复错误。哪几个?不知道,我没有这些脚本,也没有看到屏幕(或者日志文件,如果有的话)。
https://stackoverflow.com/questions/72745407
复制相似问题