En Oracle una “colección” PL/SQL (PLSQL collection) es un tipo de datos compuesto consistente en una matriz de una sola dimensión que está compuesta por uno o más elementos accesibles a través de un índice.
Los datos de tipo colección se utilizan en algunas de las más importantes funcionalidades del PL/SQL asociadas con la optimización del rendimiento de las bases de datos Oracle tales como:
FORALL: dentro de los cuales se incluyen sentencias INSERT, UPDATE y DELETE que utilizan colecciones para cambiar múltiples registros de datos de una manera muy rápida.
BULL COLLECT: sentencias SELECT que devuelven múltiples registros en una simple extracción, incrementando notablemente la velocidad de la consulta.
Funciones de tipo tabla: funciones PLSQL que devuelven datos de tipo colección y que pueden utilizarse en la cláusula FROM de una sentencia SELECT.
Las colecciones también se pueden utilizar para trabajar en nuestros programas con listas de datos que no está almacenados en tablas de las base de datos Oracle.
Conceptos básicos y terminología del tipo de dato colección
Antes de empezar a explorar este tipo de dato del PLSQL, resulta conveniente conocer el vocabulario y la terminología que se utiliza al manejar las colecciones y que incluye los siguientes términos:
Valor índice: indica la localización de un dato en una colección. Normalmente son números enteros pero para algunos tipos de colección pueden ser también cadenas de caracteres.
Elementos: son los datos almacenados bajo un valor de índice específico. Los elementos en una colección son siempre del mismo tipo (todos ellos serán cadenas de caracteres, fechas o registros). Las colecciones PL/SQL están constituidas por datos homogéneos.
Dispersión: una colección se dice dispersa si hay al menos un valor del índice entre el valor más bajo y el más alto del mismo que no está definido. Por ejemplo, una colección es dispersa si tiene un elemento asignado para el índice 1 y otro para el índice 5 pero no existe ningún elemento entre ambos índices. Lo contrario a una colección dispersa es una colección densa.
Método: el método de una colección es un procedimiento o función que o proporciona información sobre la colección o cambia el contenido de la misma. Los métodos se asocian a las colecciones mediante el separador punto (utilizando la sintaxis del lenguaje orientado a objetos), un ejemplo sería mi_coleccion.PRIMER_METODO.
Tipos de colecciones
Las colecciones fueron introducidas por primera vez en la versión 7 de Oracle y desde entonces han ido evolucionando y mejorando a medida que han ido surgiendo nuevas versiones de la base de dato Oracle. Actualmente existen tres tipos de colecciones diferentes, cada una con sus propias características:
Matriz asociativa: fue el primer tipo de colección disponible en PLSQL al que originalmente se le denominó “tabla PL/SQL” y sólo puede utilizarse en bloques PLSQL. Las matrices asociativas pueden ser dispersas o densas y pueden indexarse por enteros o cadenas de caracteres.
Tablas anidadas: aparecieron en la versión 8 de la base de datos Oracle. Las tablas anidadas pueden utilizarse en bloques PL/SQL, en sentencias SQL y como tipo de dato para la columna de una tabla. Aunque las tablas anidadas pueden ser dispersas, casi siempre serán densas. Pueden indexarse exclusivamente por enteros. Es posible utilizar el operador MULTISET para realizar operaciones y comparaciones sobre el conjunto de todos los datos.
Varray (matrices de tamaño variable): añadidas también en la versión 8 de la base de datos Oracle. Las varray o matrices de tamaño variable pueden utilizarse en bloques PL/SQL, en sentencias SQL y como tipo de dato para la columna de una tabla. Las varrays son siempre densas e indexadas por enteros. Cuando se define un varray se debe especificar el máximo número de elementos permitidos en la colección.
Viendo las definiciones anteriores es fácil concluir que raramente necesitaremos utilizar un varray, ya que será bastante poco frecuente conocer el máximo número de elementos que podrá llegar a tener nuestra colección.
También podemos decir que la matriz asociativa es el tipo de colección más comúnmente utilizado, pero las tablas anidadas, al permitir el empleo del operador MULTISET, están dotadas de una funcionalidad única y muy potente que puede simplificar notablemente el código PL/SQL a escribir cuando empleamos una colección.
Ejemplo de tabla anidada
Empezaré por mostraros un sencillo ejemplo en el que se introducen muchos aspectos de las colecciones que posteriormente exploraremos más extensamente en otros artículos que pienso escribir.
DECLARE TYPE nombres_t IS TABLE OF VARCHAR2 (100); empleados nombres_t := nombres_t (); en_oficinas nombres_t := nombres_t (); en_talleres nombres_t := nombres_t (); BEGIN empleados.EXTEND (4); empleados (1) := 'Pedro'; empleados (2) := 'Elena'; empleados (3) := 'Teresita'; empleados (4) := 'Juan'; en_oficinas.EXTEND; en_oficinas (en_oficinas.LAST) := 'Elena'; en_oficinas.EXTEND; en_oficinas (en_oficinas.LAST) := 'Juan'; en_talleres := empleados MULTISET EXCEPT en_oficinas; FOR l_row IN 1 .. en_talleres.COUNT LOOP DBMS_OUTPUT.put_line (en_talleres (l_row)); END LOOP; END;
Al ejecutar el código ejemplo, obtendremos la siguiente salida:
Pedro Teresita
En el código ejemplo podéis ver como hemos inicializado la colección empleados con cuatro registros. Luego hemos utilizado dos de esos registros para crear dos elementos en la colección en_oficinas. Posteriormente hemos inicializado la colección en_talleres con todos los elementos de la colección empleados que no están en la colección en_oficinas utilizando el operador MULTISET. Y finalmente hemos sacado por pantalla los elementos de la colección en_talleres.
Quedan todavía por mencionar muchos aspectos básicos sobre el manejo de colecciones (inicialización, actualización, iteración, borrado, etcétera), pero estos temas serán objeto de artículos posteriores.
I am not sure where you’re getting your information, but great topic.
I needs to spend some time learning much more or
understanding more. Thanks for magnificent info I was looking for this info
for my mission.
Do you have a spam issue on this website; I also am a blogger, and I was wanting to know your situation;
we have developed some nice procedures and we are looking to trade strategies with
others, be sure to shoot me an email if interested.
antivert drug https://meclizinex.com/# antivert for sale
hydroxychloroquine tablets 10 mg
generic name for ivermectin
ivermectin 9 mg
propecia tablet in india
gabapentin 13
2 furosemide
prednisolone tablet brand name
stromectol pill for humans
viagra in usa
buy tadalafil 5mg tablet
buy metformin india
zoloft no prescription
zoloft 25 mg
amoxicillin 125 mg price
neurontin 800 mg tablets best price
amoxicillin 850 mg price
triamterene hctz 75 50 mg
wellbutrin xl generic
plaquenil medicine
my canadian pharmacy
stromectol 6 mg tablet
ivermectin 400 mg brands
buy chloroquine online canada
cialis price in india
stromectol buy
cialis 5mg tablets price
where to buy ivermectin pills
zoloft generic drug
can you buy propecia over the counter
valtrex generic prescription
zovirax generic pills
acyclovir topical cream
ivermectin cream canada cost
325443009 prednisolone
budesonide
where to buy generic zoloft
order lasix online no prescription
budesonide price
price of augmentin 625mg
propecia 0.5 mg
furosemide without prescription us
mail order pharmacy india
propecia women
zithromax z pak
diflucan cap 150 mg
best canadian pharmacy no prescription
atarax 10mg tablet
azithromycin tabs 250 mg
malegra fxt uk
finpecia without prescription
lisinopril 1 mg tablet
noroxin pill
finasteride 1mg tablets for sale
buy deltasone pills in united state online
200 mg accutane
biaxin for bronchitis
buy cheap lipitor
online pharmacy vermox
buying seroquel online
finasteride cost
canadian pharmacy online viagra
canada discount pharmacy
buy zestoretic
buy baclofen uk
zithromax pill
doxycycline cream over the counter
advair diskus 100
valtrex cream coupon
cheapest pharmacy to fill prescriptions with insurance
dexamethasone 4mg
generic zoloft online
dexamethasone tablet price
effexor 35mg
amoxicillin 500mg price
tizanidine 5mg
reputable indian pharmacies
prednisolone online pharmacy uk
best canadian online pharmacy
celebrex 200mg price
prescription viagra for sale
brand name prozac price
canadian pharmacies comparison
clomid 50mg tablets
where can i buy lasix
fluoxetine 20 mg cost
modafinil price australia
buy roaccutane
clonidine iv
Срочно нужны были деньги, решил продать свою Audi. В поисковике Яндекс я нашел skupkavto.ru. Приятно удивлен: машина ушла по хорошей цене, все оформили быстро, деньги сразу получил.
best online pharmacy
diflucan 100
xenical online cheap
paxil for social anxiety
where can i buy flomax over the counter
purchase lisinopril 10 mg
trazodone usa
zestoretic 20-25 mg
stromectol covid
synthroid brand name cost
erythromycin antibiotics
buy prednisolone 5mg australia
zofran gel
brillx casino
Brillx
Brillx Казино – это не просто обычное место для игры, это настоящий храм удачи. Вас ждет множество возможностей, чтобы испытать азарт в его самой изысканной форме. Будь то блеск и огонь аппаратов или адреналин в жилах от ставок на деньги, наш сайт предоставляет все это и даже больше.Brillx Казино — это место, где сливаются воедино элегантность и бесконечные возможности. Необычная комбинация азартных игр и роскошной атмосферы позволит вам окунуться в мир бриллиантового веселья. Наше бриллиантовое казино уверенно входит в число лидеров азартной индустрии, и в этом году мы готовы порадовать вас еще большим разнообразием игр и выигрышей.
sildenafil 25 mg
propecia buy online australia
furosemide 500mg tablets
Замок на даче сломался в самый неподходящий момент. К счастью, я знал о newzamok.ru, и они быстро все починили.
levitra pill from mexico
lisinopril without an rx
clomid purchase canada
retino 0.25
20mg nolvadex daily
modafinil 2019
buy provigil uk
provigil brand name
buy real nolvadex
doxycycline hyc 100mg
lopressor 50 mg
doxycycline prescription australia
provigil in canada
buy provigil 100mg online
buy clonidine no prescription usa pharmacy
buy phenergan online uk
zanaflex otc
baclofen 500 mg
zestoretic 20 price
buy malegra online 100mg
where can you buy modafinil over the counter
medication allopurinol pills
modafinil paypal uk
price of tizanidine 4mg
canadian pharmacy viagra 50 mg
tretinoin cheapest price
order levitra cheap
albenza for pinworms
clomid for sale in usa
furosemide 60 mg
foreign pharmacy online
how much is tizanidine
best pharmacy
tizanidine 6 mg capsules
synthroid over the counter online
discount prednisolone
clonidine hcl 0.3mg
can i order metformin online
modafinil online no prescription
happy family rx
inderal 10 mg tablet
generic for citalopram
online pharmacy levitra generic
retino 0.25 cream price
tadalafil 20 mg tablet cost
Откройте для себя уникальный комфорт угг от UGG Australia. Акция позволяет купить УГГИ по привлекательным ценам. Не упустите шанс обогатить свой гардероб стильной обувью.
Сайт: uggaustralia-msk.ru
Адрес: Москва, 117449, улица Винокурова, 4к1
Потеря работы заставила меня обратиться за срочным займом. На портале cntbank.ru я нашел множество выгодных предложений, и акция «займ без процентов» помогла мне переждать финансовые трудности.
Ожидая следующей зарплаты, я столкнулась с неожиданными медицинскими расходами. cntbank.ru предложил множество вариантов займов, и благодаря акции «займ без процентов» я смогла быстро решить финансовые вопросы без ущерба для бюджета.
Я нашел курс повышения квалификации, который мог помочь мне продвинуться по карьерной лестнице. Займ с cntbank.ru помог мне оплатить учебу и стать более компетентным специалистом.
doxycyline online
В преддверии праздников я понял, что не хватает денег на подарки для семьи. Сайт cntbank.ru предложил мне идеальное решение – срочный займ на карту. Я сразу же оформил заявку, и мне быстро одобрили займ. Так я смог порадовать своих близких замечательными подарками.
dipyridamole drug
clonidine hcl er
Если вам близка тематика войны, чести и героизма, военные турецкие сериалы — ваш выбор. Откройте для себя мир, где каждое действие имеет значение, и каждый выбор может стать роковым. Эти сериалы полны адреналина, динамичных сцен и непредсказуемых исходов. Здесь нет места для слабых, только сильные духом найдут своё место под солнцем. Не упустите шанс погрузиться в этот захватывающий мир!
Изучаете турецкий язык или просто хотите насладиться качественным кинематографом? В любом случае, турецкие сериалы на русском — идеальный вариант для вас. У нас вы найдете огромный каталог сериалов, переведенных на русский язык. От драмы и мелодрамы до комедий и боевиков — у нас есть все, чтобы удовлетворить ваш кинематографический аппетит. Не теряйте времени на поиски — все, что вам нужно, уже здесь. Больше не нужно ждать перевода — просто выбирайте и смотрите.
tetracycline capsule price
В мире постоянных изменений финансовая гибкость становится ключевым фактором. Сервисы, предоставляющие круглосуточные займы на кредитную карту, позволяют вам получать необходимые средства в любое время дня и ночи. Это особенно удобно для тех, кто работает до поздна или же тех, кому срочно понадобились деньги вне рабочего времени банков.
zithromax price singapore
Не так давно мой друг оказался в затруднительном положении, когда ему отказали в кредите из-за неблагоприятной кредитной истории. Но он нашел выход, обратившись за займ на карту с любой историей. Я был поражен, насколько легко и просто он смог получить финансовую помощь, несмотря на все свои прошлые проблемы с банками. Это доказывает, что всегда есть возможности для тех, кто готов их искать. Если вы находитесь в ситуации, когда кажется, что все двери закрыты, не отчаивайтесь — есть сервисы, готовые помочь вам в любой жизненной ситуации.
deltasone 20 mg
Discover the convenience of shopping from home with our selection of timepieces. Simply buy watches online and enjoy a range of styles and brands at your fingertips.
Don’t let a tight budget stop you from sporting a stylish timepiece. Check out our watch low price selection today!
Чтобы достичь высоких позиций в Яндексе, важно сосредоточиться на сео продвижение гугл . Это означает не только внедрение ключевых слов и оптимизацию контента, но и улучшение пользовательского опыта, скорости загрузки сайта и мобильной адаптации. Все эти факторы важны для успешного SEO.
I always spent my half an hour to read this website’s posts all the time along
with a mug of coffee.
purchase lyrica online
accutane india buy
На МИР-ЗАЙМОВ.РФ вы найдете эксклюзивные предложения от лучших МФК. Одним из таких предложений являются займы без процентов на 30 дней. Не упустите возможность воспользоваться этой выгодой!
buy cialis for daily use
Лучшие онлайн казино России на рубли
Лучшие онлайн казино России на рубли
Онлайн казино на реальные деньги для андроид
https://gozee.ru/
I don’t know how I ever got by without your distinctive ilk of insight
opposing my perspectives.
Also visit my website; online installment loans no credit check instant approval canada
Онлайн казино на реальные деньги для андроид
Онлайн казино на реальные деньги для андроид
lisinopril 10 mg daily
lisinopril australia
Онлайн казино на реальные деньги для андроид
Онлайн казино на реальные деньги для андроид
В тот дождливый вечер, когда все казалось потерянным, и мне срочно требовались деньги, я нашел свет в конце тоннеля. Сайт wikizaim.ru стал моим спасателем в море финансовых бурь. Взять займ онлайн на карту без отказа – эти слова звучали как музыка для моих ушей. Быстро, просто, и без лишних вопросов – я получил нужные средства, чтобы встретить утро с новыми надеждами.
Онлайн казино на реальные деньги для андроид
https://gozee.ru/
Недавно я оказался в сложной ситуации, когда срочно понадобились деньги. Друзья посоветовали мне поискать займы онлайн без отказа на сайте wikizaim.ru. Я был удивлен, насколько это было просто и быстро. Всего за несколько минут я оформил заявку и получил нужную сумму на карту. Спасибо wikizaim.ru за быстрое решение моей финансовой проблемы!
Срочно нужны деньги, и не хотите сталкиваться с отказами? Наши срочные займы без отказа на сайте wikizaim.ru – ваш надежный выход!
Мы сотрудничаем с надежными МФО, которые готовы одобрить вашу заявку в кратчайшие сроки. Не теряйте времени на бесконечные ожидания и заполнение бумажек. Оформите заявку онлайн, и вы получите ответ моментально.
С нашей помощью вы сможете решить срочные финансовые вопросы без лишних затрат времени. У нас выгодные условия и конкурентоспособные процентные ставки. Получите займ срочно без отказа на wikizaim.ru и решите свои финансовые проблемы немедленно!
Нужны деньги немедленно, и вы ищете способ получить займ онлайн без лишних отказов? На сайте wikizaim.ru вы найдете предложения, которые помогут вам решить срочные финансовые задачи без задержек.
Наши партнеры готовы рассмотреть вашу заявку быстро и эффективно. Оформите заявку онлайн, и вы получите решение в кратчайшие сроки.
Мы ценим ваше время и предоставляем условия займа, которые удовлетворяют ваши потребности. Забудьте о бесконечных очередях и бумажной волоките – wikizaim.ru делает процесс получения займа онлайн срочно и без отказа максимально простым и удобным.
Не упустите возможность решить свои финансовые проблемы с нами. Оформите займ онлайн срочно без отказа на wikizaim.ru и получите нужные средства быстро и надежно!
amoxicillin clavulanate
В поисках чего-то особенного для разнообразия своей личной жизни, я обратился к sladkiye-strasti.ru и был удивлён количеством интересных предложений. Особенно привлекли моё внимание товары для взрослых , которые оказались именно тем, что я искал. Впечатляет уровень сервиса и анонимность доставки, что немаловажно для таких покупок.