plsql怎样根据表的行号查询数据

plsql怎样根据表的行号查询数据,第1张

PLSQL中查询语句行号可以用ROWNUM(伪列)标识,

如SELECT ROWNUM,VT FROM V$TABLESPACE VT;

但PLSQL很少用行号查询数据库, 除非为了控制数据量

如SQLSERVER的SELECT TOP

或PLSQL的SELECT FROM <TABLE> WHERE ROWNUM =1, 或ROWNUM<10

进一步进行测试:

SQL1) SELECT ROWNUM,VT FROM V$TABLESPACE VT;

SQL2) SELECT ROWNUM,VT FROM V$TABLESPACE VT ORDER BY VTNAME;

分析:对比1和2, 同一级的查询, ORDER BY排序不会影响ROWNUM编号(先产生ROWNUM后排序)

SQL3) SELECT ROWNUM,VT2 FROM (SELECT VT FROM V$TABLESPACE VT ORDER BY VTNAME) VT2;

分析:如希望用排序后的结果编号,则需将排序放在子查询中,再取ROWNUM

SQL4) SELECT FROM (SELECT ROWNUM ,VT FROM V$TABLESPACE VT WHERE ROWNUM <10 ORDER BY VTNAME) WHERE ROWNUM = 3;

无数据,分析:ROWNUM为全局伪列, 在解析时优先级高于子查询中的ROWNUM列

SQL5) SELECT FROM (SELECT ROWNUM RN,VT FROM V$TABLESPACE VT WHERE ROWNUM <10 ORDER BY VTNAME) A WHERE ARN = 3;

得到指定行的数据,分析:子查询中ROWNUM编号需定义别名(本例中为"RN")后方可在条件中使用

1安装PLSQL Developer。

2安装oracle instance client端。

3启动PLSQL Developer ,选择cancle,no logged on。

4选择tools》》preferences》》connection,在oracle home中输入安装好的oracle instance client目录,在OCI LIBRARY中输入oracle instance client 的OCIdll文件的具体路径,如D:\data\database\instantclient-basic-nt-112020\instantclient_11_2\ocidll。

5在oracle instance client根目录,如D:\data\database\instantclient-basic-nt-112020\instantclient_11_2\中建立tnsnamesora名字解析文件,在其中输入对应的oracle服务器解析规则信息,可参考oracle服务器端的tnsnamesora文件内容,如:

连接名称(自定义)=

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 数据库服务器IP)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = 数据库实例名)

)

)

6设置环境变量:

添加tns解释文件环境变量,名为TNS_ADMIN,值为tnsnamesora文件所在路径(如:D:\data\database\instantclient-basic-nt-112020\instantclient_11_2\,特别是重装后或其它 *** 作,忘了TNS_ADMIN变量,plsql登陆就会报无法解析指定的连接标识符),这是为了能够找到上面说的tnsnamesora。如果本机上安装了ORACLE,并且设置了ORACLE_HOME环境变量,那么会自动在%ORACLE_HOME%/network/admin/位置查找tnsnamesora文件。

添加oracle语言环境变量,添加环境变量:

“NLS_LANG = SIMPLIFIED CHINESE_CHINAAL32UTF8”,(CHINESE_CHINAAL32UTF8 是ASCII编码类型,其它类型可自己到服务器看一下,在服务器上输入命令:select userenv('language') from dual;)。

7确定,重启程序,如果正常则可看到CONNECT AS XXX 选项。然后输入用户名和密码。

1、PL SQL 的查询结果本来就不能用于直接修改。

2、请根据查询结果编写(使用)标准的SQL语句,让PL SQL执行(也就是发送给数据库服务器)来进行修改。

3、或手动找到相关的表点右键,点“编辑数据”。

相关知识:

1、PL SQL中直接找到表,然后对表点右键-》“编辑数据”,这样打开的表可以进行数据的直接修改与输入。原因是,这样打开的表是最简单的查询,PL SQL帮你准备好了相应的回写与修改的SQL语句,实质是“帮”你完成了相关语句的编写。

2、而自定义的SQL语句查出的结果,有可能是非常复杂的语句产生的查询,PL SQL是不知道怎么自动产生相应对应的修改表、追加数据的语句的,所以,得靠你自已动手。

3、一定要建立这样的理解,当前主流的网络数据库 *** 作,基本上都建立在SQL语句的发送、接收、执行的基础上。不应该用“打开”文件,“改写”文件的理念去理解它。因为数据文件可能压根就不在你 *** 作的电脑上。

4、你要做的应该是把你想干嘛通过SQL语句告诉数据服务器系统,你想干嘛,然后数据服务器分析SQL语句后,依你的要求去做。

查询不在这个范围类的数据。

例如:select from student where classID not in (1,4,5)查出的就是classID 不在1,4,5这个范围内的数据。

不建议用not in这个关键词来做查询,理由:

1、效率低,2、在使用中容易出现问题,或查询结果有误

PL/SQL Developer是一个集成开发环境,专门开发面向Oracle数据库的应用。PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。PL/SQL是Oracle数据库对SQL语句的扩展。

在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL把数据 *** 作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等 *** 作实现复杂的功能或者计算。MySQL 不支持 PL/SQL ,但支持Navicat Premium。

扩展资料:

plsql特性:

1、PL/SQL完善器

该完善器允许您通过用户定义的规则对SQL和PL/SQL代码进行规范化处理。在编译、保存、打开一个文件时,代码将自动被规范化。该特性提高了您编码的生产力,改善了PL/SQL代码的可读性,促进了大规模工作团队的协作。

2、SQL 窗口

该窗口允许您输入任何SQL语句,并以栅格形式对结果进行观察和编辑,支持按范例查询模式,以便在某个结果集合中查找特定记录。另外,还含有历史缓存,您可以轻松调用先前执行过的SQL语句。该SQL编辑器提供了同PL/SQL编辑器相同的强大特性。

3、命令窗口

使用PL/SQL Developer 的命令窗口能够开发并运行SQL脚本。该窗口具有同SQLPlus相同的感观,另外还增加了一个内置的带语法加强特性的脚本编辑器。这样,您就可以开发自己的脚本,无需编辑脚本/保存脚本/转换为SQLPlus/运行脚本过程,也不用离开PL/SQL Developer集成开发环境。

参考资料来源:百度百科-plsql

Normal User: select table_name from user_tables where table_name like 'S%'; SysDBA User: select table_name from dba_tables where table_name like 'S%';

你查询一下 all_tables 或者 dba_tables 看一下 CD_ACCOUNT_CLASS_DICT 表的owner

然后 在sqlplus 下 show user 看看用户 和 plsql的用户是否是同一个,如果相同,在查询一下sqlplus 的登录数据库的SID 和 PLSQL 登录数据库的SID 看看是否一样。

如果是同一个数据库同一个用户登录 是不会出现 你这种情况的。因为顶层的处理是一样的。

以上就是关于plsql怎样根据表的行号查询数据全部的内容,包括:plsql怎样根据表的行号查询数据、PLSQL Developer连接的是远程的数据库,查询时怎么设置表名前面不加数据库名、PLSQL查询出Oracle数据后无法修改怎么办等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9291457.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存