0votos
Poker Kata en PL-SQL
por

Raul GM

usando postgresql hace 4 años

Ya estoy acabando con la asignatura Bases de datos... La verdad me gustaría dar soluciones más profesionales, pero se hace lo que se puede. He hecho un porrón de funciones, he puesto un índice para quién las quiera seguir. Cualquier consejo es bien recibido. Aquí estoy para aprender.

0votos
Matriz Caracol en PL-SQL
por

Raul GM

hace 4 años

Buf lo que más me ha costado ha sido inicializar un array de dos dimensiones. Plpgsql has de inicializar el array con valores para darle un size concreto. El resto ha sido una pelea, pero me ha gustado este problema. Espero que os guste.

0votos
Kata Tennis en PL-SQL
por

Raul GM

hace 4 años

He creado una función que devuelve los campos de una tabla como cursor. No hace falta, pero es otra forma de resolver la Kata. Para hacer que juegue he hecho un random que devuelve un entero 1 o 2. He necesitado saber el jugador contrario al que ganaba punto. Es decir: Si el random devuelve 1, necesitaba acceder también al jugador 2. Lo que he hecho para volverlo eficiente y no usar un condicional 'si' es: absoluto de ("valor_random" - 3). Si random es 1, entonces obtendríamos 2.

0votos
Potencias de Dos en PL-SQL
por

Raul GM

hace 4 años

ebrasca me ha dado envidia. Doy mi versión en PLpgsql. Tiene un problema el bigint es de 8 bits y su valor máximo es 9223372036854775807. He usado la función numeric(), pero no es precisa... Seria interesante conocer en PLpgsql una forma de poder tratar números tan grandes.

0votos
Dígitos en PL-SQL
por

Raul GM

hace 4 años

Creo un cadena con los valores añadidos del 1 al 100000, llamada 't'. Me ayudo de la función de SQL strpos(t, N) que me devuelve en entero la posición primera en que aparece N en 't'. Para "optimizar" un poco, he hecho un return interrumpido por un if cuando el valor de la iteración del for sea igual a N. Me ha sorprendido que la variable tipo text a la hora de añadir valores enteros no sea necesario cambiar el entero a cadena.

0votos
Simplificar palabras en PL-SQL
por

Raul GM

hace 4 años

Espero haber entendido el enunciado. He vuelto a mayúsculas el texto introducido y los chars especiales 'ÁÉÍÓÚÑÏÜ' los traduzco a 'AEIOUNIU'. En SQL SELECT TRANSLATE(UPPER(__texto_entrada__),'ÁÉÍÓÚÑÏÜ','AEIOUNIU'); es suficiente, pero lo he puesto como función simpleWord(__texto_entrada__);