{"id":1755,"date":"2017-08-13T20:47:41","date_gmt":"2017-08-13T18:47:41","guid":{"rendered":"http:\/\/clemente.pamplona.name\/dba\/?p=1755"},"modified":"2017-08-27T20:25:15","modified_gmt":"2017-08-27T18:25:15","slug":"row_limiting-mejoras-importantes-en-la-visualizacion-de-datos-en-12c","status":"publish","type":"post","link":"http:\/\/clemente.pamplona.name\/dba\/row_limiting-mejoras-importantes-en-la-visualizacion-de-datos-en-12c\/","title":{"rendered":"ROW_LIMITING Mejoras importantes en la visualizaci\u00f3n de datos en 12c"},"content":{"rendered":"<p>Las consultas que ordenan los datos y  obtienen partes de ellos ordenados son llamadas TOP_N consultas. Al contrario que en otros motores de bases de datos, hasta el momento Oracle resolvia estas consultas mediante el  ROWNUM y otras tecnicas similares<br \/>\n.<br \/>\nEn la version 12c Oracle ya nos brinda la funcionalida de ROW_LIMITING, que viene a ser el uso de un offset y un principio y fin en estas consultas. La sintaxis para usarla en la cl\u00e1usula SELECT es:<\/p>\n<pre>\r\n[ OFFSET offset { ROW | ROWS } ]\r\n[ FETCH { FIRST | NEXT } [ { rowcount | percent PERCENT } ]\r\n    { ROW | ROWS } { ONLY | WITH TIES } ]\r\n<\/pre>\n<p>Algunas consultas ser\u00edn:<\/p>\n<pre>\r\nSELECT val  FROM   tabla1  ORDER BY campo \r\n   FETCH FIRST 5 ROWS;\r\n\r\nSELECT val  FROM   tabla1  ORDER BY campo \r\n   FETCH FIRST 10 PERCENT ROWS ONLY;\r\n\r\nSELECT val  FROM   tabla1  ORDER BY campo\r\n    OFFSET 10 ROWS FETCH NEXT 5 ROWS ONLY;\r\n<\/pre>\n<p>Si lo quisiesemos con duplicados <\/p>\n<pre>\r\nSELECT val  FROM   tabla1   ORDER BY campo DESC\r\n  FETCH FIRST 5 ROWS WITH TIES;\r\n<\/pre>\n<p>Cosas a tener en cuenta <\/p>\n<ul>\n<li>Si no especificamos offset este ser\u00e1 cero\n<li> Igualmente, si ponemos un offset negativo sera cero tambi\u00e9n\n<li> Si ponemos un valor nulo en offset,rowcount o porcentaje, la consulta no devolver nada\n<li> Los valores de offset,rowcount o porcentaje son truncados en caso de no ser enteros\n<li> Si el porcentaje que indicas es mayor que el numero de filas que quedan devolver\u00e1 todas\n<li>Las palabras  ROW y ROWS son intercambiables\n<\/ul>\n<p><b>NOTA:<\/b>Estas opciones no pueden usarse en clasulas FOR UPDATE , en secuencias CURRVAL\/NEXTVAL o en cl\u00e1usulas de <i>fast refresh<\/i> de vistas materializadas.<\/p>\n<p>ms informaci\u00f3n como siempre en <\/p>\n<ul>\n<li><a href=\"http:\/\/docs.oracle.com\/database\/121\/SQLRF\/statements_10002.htm#SQLRF01702\">Documentaci\u00f3n de SELECT <\/a>\n<li> <a href=\"https:\/\/oracle-base.com\/articles\/12c\/row-limiting-clause-for-top-n-queries-12cr1\">ROW_LIMITIG en oracle base<\/a>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Las consultas que ordenan los datos y obtienen partes de ellos ordenados son llamadas TOP_N consultas. Al contrario que en otros motores de bases de datos, hasta el momento Oracle resolvia estas consultas mediante el ROWNUM y otras tecnicas similares &hellip; <a href=\"http:\/\/clemente.pamplona.name\/dba\/row_limiting-mejoras-importantes-en-la-visualizacion-de-datos-en-12c\/\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[60,9,114],"tags":[820,816,822,810,814,818,812],"class_list":["post-1755","post","type-post","status-publish","format-standard","hentry","category-12c","category-dummie","category-plsql","tag-first","tag-limit","tag-next","tag-row_limiting","tag-select","tag-ties","tag-top_n"],"_links":{"self":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/1755","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/comments?post=1755"}],"version-history":[{"count":5,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/1755\/revisions"}],"predecessor-version":[{"id":1760,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/1755\/revisions\/1760"}],"wp:attachment":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/media?parent=1755"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/categories?post=1755"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/tags?post=1755"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}