[20130918]12c FETCH FIRST和绑定变量.txt

[20130918]12c FETCH FIRST和绑定变量.txt

http://connormcdonald.wordpress.com/2013/09/11/12c-fetch-first/

重复测试:

@ver
BANNER                                                                               CON_ID
-------------------------------------------------------------------------------- ----------
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production              0
drop table T purge;
create table T as select * from all_objects;
select owner, object_name, object_id from t order by owner, object_name FETCH FIRST 5 ROWS ONLY;
OWNER                OBJECT_NAME                     OBJECT_ID
-------------------- ------------------------------ ----------
APEX_040200          APEX                                88917
APEX_040200          APEX$ARCHIVE_CONTENTS               89744
APEX_040200          APEX$ARCHIVE_CONTENTS_IDX1          89748
APEX_040200          APEX$ARCHIVE_HEADER                 89742
APEX_040200          APEX$ARCHIVE_HISTORY                89749

variable x number
exec :x  := 5
select owner, object_name, object_id from t order by owner, object_name FETCH FIRST :x  ROWS ONLY;
OWNER                OBJECT_NAME                     OBJECT_ID
-------------------- ------------------------------ ----------
APEX_040200          APEX                                88917
APEX_040200          APEX$ARCHIVE_CONTENTS               89744
APEX_040200          APEX$ARCHIVE_CONTENTS_IDX1          89748
APEX_040200          APEX$ARCHIVE_HEADER                 89742
APEX_040200          APEX$ARCHIVE_HISTORY                89749

declare
  x number := 5;
begin
 for i in (
select owner, object_name, object_id
from t
order by owner, object_name
FETCH FIRST x ROWS ONLY
)
loop
  null;
end loop;
end;
/

*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
Process ID: 2580
Session ID: 128 Serial number: 57

--出现错误!

declare
  x number := 5;
begin
 for i in (
select owner, object_name, object_id
from t
order by owner, object_name
FETCH FIRST cast(x as number) ROWS ONLY
)
loop
  null;
end loop;
end;
/

PL/SQL procedure successfully completed.
--OK 这样通过。

时间: 2024-10-10 04:16:28

[20130918]12c FETCH FIRST和绑定变量.txt的相关文章

[20121102]PLSQL中的绑定变量.txt

[20121102]PLSQL中的绑定变量.txt     以前曾经遇到一个sql语句提交给开发,开发没有找到,最终确定是问题语句在PLSQL中,实际上PLSQL转化为大写, 加上自己没有注意.实际上SQL语句在PLSQL中,一些好像被"格式化一样",我举一个例子: 1.测试环境: SQL> select * from v$version where rownum BANNER ---------------------------------------------------

[20170929]& 代替冒号绑定变量.txt

[20170929]& 代替冒号绑定变量.txt --//我昨天看链接,http://orasql.org/2017/09/27/ampersand-instead-of-colon-for-bind-variables/ --//重复测试: SCOTT@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER ------------------------------ -------------- -

[20150812]关于抓取绑定变量.txt

[20150812]关于抓取绑定变量.txt --通过视图v$sql_bind_capture以及DBA_HIST_SQLBIND可以抓取到sql语句的绑定变量.受到一些参数的限制,曾经写过一篇: [20130410]v$sql_bind_capture和隐含参数_bind_capture_area_size.txt http://blog.itpub.net/267265/viewspace-758175/ SCOTT@test> @ver1 PORT_STRING              

[20120726]建立约束和使用绑定变量.txt

[20120726]建立约束和使用绑定变量.txt 昨天检查awr报表文件,发现:select condition from cdef$ where rowid=:1这条语句执行次数很高,因为查询的where条件使用rowid=:1,应该不会是用户的程序执行,而是某种递归的调用. 直接在google输入select condition from cdef$ where rowid=:1,发现如下链接:http://jonathanlewis.wordpress.com/2006/12/14/co

[20171019]绑定变量的分配长度7.txt

[20171019]绑定变量的分配长度7.txt --//如果绑定变量中字符串分配占用空间的长度变化,oracle会建立子光标. --//参考连接: http://blog.itpub.net/267265/viewspace-1993495/ --//oracle 可以通过一个10503事件设置大的缓存,测试看看: $ oerr ora 10503 10503, 00000, "enable user-specified graduated bind lengths" // *Cau

[20160313]绑定变量的分配长度4.txt

[20160313]绑定变量的分配长度4.txt --如果绑定变量中字符串分配占用空间的长度变化,oracle会建立子光标. --参考连接: http://blog.itpub.net/267265/viewspace-1993495/ http://blog.itpub.net/267265/viewspace-2024389/ http://blog.itpub.net/267265/viewspace-2050886/ --12c支持更长的字符串,顺便测试看看: --关于设置12c支持字串

[20161001]绑定变量的分配长度5.txt

[20161001]绑定变量的分配长度5.txt --如果绑定变量中字符串分配占用空间的长度变化,oracle会建立子光标. --一般如果绑定变量有多个字段在分配占用空间时长度变化,这样生成的子光标会增加. --我以前的测试字符串长度变化是32,32+96=128,32+96+1872=2000.也就是分4个段 1-32,33-128,129-2000,2001-4000. --相关链接: http://blog.itpub.net/267265/viewspace-1993495/ http:

[20161002]绑定变量的分配长度6.txt

[20161002]绑定变量的分配长度6.txt --如果绑定变量中字符串分配占用空间的长度变化,oracle会建立子光标. --一般如果绑定变量有多个字段在分配占用空间时长度变化,这样生成的子光标会增加. --我以前的测试字符串长度变化是32,32+96=128,32+96+1872=2000.也就是分4个段 1-32,33-128,129-2000,2001-4000. --相关链接: http://blog.itpub.net/267265/viewspace-1993495/ http:

[20160224]绑定变量的分配长度.txt

[20160224]绑定变量的分配长度.txt --如果绑定变量中字符串分配占用空间的长度变化,oracle会建立子光标. --昨天被别人问一个问题,通过例子来说明: 1.环境: SCOTT@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER ------------------------------ -------------- -------------------------------------