Funciones de sql server

  • Published on
    14-Jun-2015

  • View
    2.436

  • Download
    4

Transcript

1. Funciones de SQL serverQu es SQL? Funciones BsicasSQL es un lenguaje universal dedicado a las bases de datos. Es un lenguaje de sintaxis simple y muypotente. Mediante l se puede recorrer, modificar o borrar registros de las tablas de datos.Propiedad SELECT: Hace la seleccin en una tabla de la BD.SELECT * FROM datosEsta sentencia seleccionara todos, absolutamente todos los registros dentro de la tabla datos.SELECT * FROM datos WHERE usuario=JuanSeleccionaramos todos los registros dentro de la tabla datos que tengan como usuario a "Juan".Propiedad INSERT INTO: Agrega un nuevo registro a la tabla elegidaINSERT INTO datos (usuario) VALUES (corsa) Insertamos en la tabla datos en la columnausuario, un registro nuevo.INSERT INTO datos (usuario, edad) VALUES (corsa,20) Aqu insertamos 2 registros almismo tiempo.Propiedad DELETE: Borra registros de nuestra tablaDELETE FROM datos WHERE usuario = PedritoBorramos los registros donde el usuario sea "Pedrito".DELETE FROM datos WHERE usuario = Mario AND edad = 16 Borramos solo los usuario denombre Mario que tenan 16 aos.Propiedad UPDATE: Actualiza registros, modificando datos ya existentes.UPDATE datos SET usuario = Pedrito Esta modificacin renombrar todos los usuarios a"Pedrito".Tipos de funcionesFunciones de conjuntos de filas: Devuelven un objeto que se puede usar como las referencias a tablasen una instruccin SQL.Funciones de agregado: Operan sobre una coleccin de valores y devuelven un solo valor de resumen.Funciones de categora: Devuelven un valor de categora para cada fila de una particin.Funciones escalares: Operan sobre un valor y despus devuelven otro valor. Las funciones escalares sepueden usar donde la expresin sea vlida.Funciones de cadenaLas funciones de cadena trabajan con campos char y varchar por lo que los literales que escribamos sedeben encerrar entre comillas simples. Estas funciones que vamos a explicar a continuacin puedenmanipular cadenas de letras u otros caracteres por lo que las vamos a dividir en dos grupos:Funciones que devuelven caracteresEste tipo de funciones devuelven un carcter o varios caracteres.FuncinPropsitoCHR(n) Nos devuelve el carcter cuyo valor en binario es nCONCAT Nos devuelve cad1 concatenada con cad2UPPERConvierte cad a maysculasLOWERConvierte cad a minsculasLPAD Con esta funcin aadimos caracteres a cad1 por la izquierda hasta una longitud mxima dada por nINITCAPConvierte la primera letra de cad a maysculaLTRIMElimina un conjunto de caracteres a la izquierda de cad, siendo set el conjunto de 2. caracteres a eliminarRPAD Con esta funcin aadimos caracteres de la misma forma que con la funcin LPAD pero esta vez los aadimos a la derechaRTRIMHace lo mismo que LTRIM pero por la derechaREPLACESustituye un conjunto de caracteres de 0 o ms caracteres, devuelve cad con cada ocurrencia de cadena_buscada sustituida por cadena_sustitucionSUBSTR Devuelve la subcadena de cad que abarca desde m hasta el numero de caracteres dados por n.TRANSLATEConvierte caracteres de una cadena en caracteres diferentes. Devuelve cad1 con los caracteres encontrados en cad2 y sustituidos por los caracteres de cad3Ponemos algunos ejemplos de utilizacin de estas funciones:Sentencia sql que nos devuelve las letras cuyo valor asccii es el 45 y el 23select CHR(45), CHR(23) FROM TABLA;Sentencia sql que obtiene el nombre de los alumnos sacando por pantalla la siguiente frase: el nombredel alumno es (nombre que est almacenado en la tabla) select CONCAT (el nombre de alumno es, nombre) from alumno;Sentencia sql que me devuelve los nombres de los alumnos en maysculasselect UPPER(nombre) from alumno;Sentencia sql que obtiene de un campo nombre, las 3 primeras letrasselect SUBSTR(nombre,0,3) from alumno;Y asi con el resto de funcionesFunciones que devuelven valores numricosEstas funciones nos devuelven nmeros a modo de informacin.FuncinPropsitoASCII(cad) Devuelve el valor ASCII de la primera letra de cadINSTR(cad1, cad2[,comienzo[,m]]) Funcin que busca un conjunto de caracteres dentro de una cadena. Nos devuelve la posicin de cad2 en cad1 empezando a buscar en comienzoLENGTH(cad)Devuelve en nmero de caracteres de cadComo con las funciones anteriores dejamos unos ejemplos para que veis su funcionamiento.Sentencia sql que nos devuelve el valor ASCII de la letra (s)select ASCII(s) from tabla;Sentencia que nos devuelve la posicin de la ocurrencia pe dentro de la cadena Los perros estn biena partir de la posicin 2select INSTR(Los perros estn bien,pe,2) from tabla;Sentencia sql que nos devuelve el numero de caracteres de los nombres de los alumnosselect LENGTH(nombre) from alumnos;Funciones en lnea Las funciones en lnea son las funciones que devuelven un conjunto de resultados correspondientes ala ecuacin de una sentencia SELECT.El siguiente ejemplo muestra cmo crear una funcin en lnea. 3. CREATE FUNCTION fn_MovimientosCuenta(@NumCuenta VARCHAR(20))RETURNS TABLEASRETURN(SELECT MOVIMIENTOS.*FROM MOVIMIENTOSINNER JOIN CUENTAS ON MOVIMIENTOS.IDCUENTA = CUENTAS.IDCUENTAWHERE CUENTAS.NUMCUENTA = @NumCuenta)No podemos utilizar la clausula ORDER BY en la sentencia de una funcin el lnea.Las funciones en lnea pueden utilizarse dentro de joins o querys como si fueran una tabla normal.SELECT * FROM fn_MovimientosCuenta(200700000001)SELECT *FROM CUENTASINNER JOIN CUENTAS_CLIENTE ON CUENTAS_CLIENTE.IDCUENTA = CUENTAS.IDCUENTAINNER JOIN CLIENTES ON CLIENTES.id = CUENTAS_CLIENTE.IDCLIENTEINNER JOIN fn_MovimientosCuenta(200700000001) A ON A.IDCUENTA= CUENTAS.IDCUENTATipos de datos de fecha y horaEn la tabla siguiente se enumeran los tipos de datos de fecha y hora de Transact-SQL.Tamao deDesplTipo de almacenam FormatoIntervaloPrecisinPrecisin azami datos iento ento(bytes)timehh:mm:ss[.nnnn De 00:00:00.0000000 a100 De 3 a 5 SNonnn] 23:59:59.9999999 nanosegundodateAAAA-MM-DD De 0001-01-01 a 9999-12-31 1 da3 NoNosmalldate AAAA-MM-DD De 1900-01-01 a 2079-06-061 minuto4 NoNotimehh:mm:ssdate time AAAA-MM-DD De 1753-01-01 a 9999-12-310,00333 8 NoNohh:mm:ss[.nnn] segundosdatetimeAAAA-MM-DD De 0001-01-01 00:00:00.0000000 a 100 De 6 a 8 SNo2 hh:mm:ss 9999-12-31 23:59:59.9999999nanosegundodatetimeo AAAA-MM-DD De 0001-01-01100 De 8 a 10SSffset hh:mm:ss[.nnnn 00:00:00.0000000 a 9999-12-nanosegundonnn] [+|]hh:mm 31 23:59:59.9999999 (en UTC)NOTAEl tipo de datos rowversion de Transact-SQL no es un tipo de datos de fecha y hora. timestamp es un sinnimoobsoleto de rowversin. 4. Funciones de fecha y horaEn las tablas siguientes se enumeran las funciones de fecha y hora de Transact-SQL. Para obtener msinformacin acerca del determinismo, vea Funciones deterministas y no deterministas.Funciones que obtienen valores de fecha y hora del sistemaTodos los valores de fecha y hora del sistema se derivan del sistema operativo del equipo en el que seejecuta la instancia de SQL Server.Funciones de fecha y hora del sistema de precisin elevadaSQL Server 2008 R2 obtiene los valores de fecha y hora utilizando la APIde WindowsGetSystemTimeAsFileTime(). La exactitud depende del hardware del equipo y de la versin deWindows en las que la instancia de SQL Server se est ejecutando. La precisin de esta API se fija en100 nanosegundos. La precisin se puede determinar mediante la API de WindowsGetSystemTimeAdjustment().FuncinSintaxisValor devueltoTipo de Determinis datos moSYSDATETIMESYSDATETIME ()Devuelve un valor datetime2(7) que contiene la fecha ydatetime2 No hora del equipo en el que la instancia de SQL Server se determinista est ejecutando. El ajuste de zona horaria no est incluido.SYSDATETIMEO SYSDATETIMEOFFSET Devuelve un valor datetimeoffset(7) que contiene la datetimeoffsetNoFFSET( ) fecha y hora del equipo en el que la instancia de SQL determinista Server se est ejecutando. El ajuste de zona horaria est incluido. SYSUTCDATETIME ( )Devuelve un valor datetime2(7) que contiene la fecha y datetime2NoSYSUTCDATETI hora del equipo en el que la instancia de SQL Server se deterministaME est ejecutando. La fecha y hora se devuelven como hora universal coordinada (UTC).Funciones de fecha y hora del sistema de precisin bajaFuncinSintaxis Valor devuelto Tipo de Determinismo datos devueltoCURRENT_TIMESTAMPCURRENT_TIMESTAMPDevuelve un valor que contiene la fecha y hora deldatetime No deterministaequipo en el que la instancia de SQL Server seest ejecutando.GETDATEGETDATE ( )Devuelve un valor que contiene la fecha y hora deldatetime No deterministaequipo. El ajuste de zona horaria no est incluido.GETUTCDATE GETUTCDATE ( ) Devuelve un valor que contiene la fecha y hora deldatetime No deterministaequipo. La fecha y hora se devuelven como unahora universal coordinada (UTC). 5. Funciones que obtienen partes de la fecha y hora FuncinSintaxis Valor devuelto TipoDeterminismoDATENAME DATENAME Devuelve una cadena de caracteres que representa el datepartnvarchar No determinista(datepart date) especificado de la fecha especificada. DATEPART DATEPARTDevuelve un entero que representa el datepart especificadointNo determinista DAY DAY ( date ) Devuelve un entero que representa la parte del da de dateint Deterministaespecificado.MONTH MONTH ( date )Devuelve un entero que representa la parte del mes de un date int Deterministaespecificado. YEARYEAR ( date )Devuelve un entero que representa la parte del ao de un date int Deterministaespecificado.Funciones escalaresCategora de la funcinFunciones de configuracin: Devuelven informacin acerca de la configuracin actual.Funciones criptogrficas: Admiten cifrado, descifrado, firma digital y la validacin de firmas digitales.Funciones del cursor: Devuelven informacin acerca de los cursores.Funciones de tipo de datos : Devuelven informacin sobre los valores de identidad y los valores de otrostipos de datos.Tipos de datos y funciones de fecha y hora: Llevan a cabo operaciones sobre un valor de entrada de fechay hora, y devuelven un valor numrico, de cadena o de fecha y hora.Funciones matemticas: Realizan clculos basados en valores de entrada proporcionados como parmetros alas funciones y devuelven valores numricos. Funciones de metadatos: Devuelven informacin acerca de la base de datos y los objetos de la base dedatos.Funciones escalares ODBC: Devuelven informacin sobre funciones ODBC escalares en una instruccinTransact-SQL.Funciones de replicacin: Devuelven informacin que se usa para administrar, supervisar y mantener latopologa de replicacinFunciones de seguridad: Devuelven informacin acerca de usuarios y roles.Funciones de cadena: Realizan operaciones en el valor de entrada de una cadena (char o varchar) y devuelvenuna cadena o un valor numrico.Funciones del sistema: Realizan operaciones y devuelven informacin acerca de valores, objetos yconfiguraciones de una instancia de SQL Server.Funciones estadsticas del sistema: Devuelven informacin estadstica acerca del sistema.Funciones de texto e imagen: Realizan operaciones sobre los valores de entrada o columnas de texto oimagen, y devuelven informacin acerca del valor.Funciones de desencadenador: Devuelven informacin acerca de los desencadenadores. 6. Determinismo de funcinLas funciones integradas de SQL Server son deterministas o no deterministas. Las funciones sondeterministas cuando devuelven siempre el mismo resultado cada vez que se llaman con un conjuntoespecfico de valores de entrada. Las funciones son no deterministas cuando es posible que devuelvandistintos resultados cada vez que se llaman con un mismo conjunto especfico de valores de entrada.Para obtener ms informacin, vea Funciones deterministas y no deterministasIntercalacin de funcionesLas funciones que toman una entrada de cadena de caracteres y devuelven una salida de cadena decaracteres utilizan la intercalacin de la cadena de entrada para la salida.Las funciones que toman entradas que no son de caracteres y devuelven una cadena de caracteresutilizan la intercalacin predeterminada de la base de datos actual para la salida.Las funciones que toman varias entradas de cadena de caracteres y devuelven una cadena decaracteres utilizan las reglas de prioridad de intercalacin para establecer la intercalacin de la cadenade salida. Para obtener ms informacin, vea Prioridad de intercalacin (Transact-SQL).Funciones escalaresLas funciones escalares definidas por el usuario devuelven un nico valor de datos del tipo definido enla clusula RETURNS. Las funciones escalares en lnea no tienen cuerpo; el valor escalar es el resultadode una sola instruccin. Para una funcin escalar de mltiples instrucciones, el cuerpo de la funcin,definido en un bloque BEGIN...END, contiene una serie de instrucciones Transact-SQL que devuelven elvalor nico. El tipo devuelto puede ser de cualquier tipo de datos excepto text, ntext, image, cursor ytimestamp.En el ejemplo siguiente se crea una funcin escalar con mltiples instrucciones. La funcin toma un valorde entrada, ProductID, y devuelve un solo valor de datos, la cantidad agregada del productoespecificado en el inventario.otherCopiarUSE AdventureWorks;GOIF OBJECT_ID (Ndbo.ufnGetInventoryStock, NFN) IS NOT NULL DROP FUNCTION ufnGetInventoryStock;GOCREATE FUNCTION dbo.ufnGetInventoryStock(@ProductID int)RETURNS intAS-- Returns the stock level for the product.BEGIN DECLARE @ret int; SELECT @ret = SUM(p.Quantity) FROM Production.ProductInventory p WHERE p.ProductID = @ProductIDAND p.LocationID = 6;IF (@ret IS NULL)SET @ret = 0; RETURN @ret;END;GOFunciones integradasSQL Server proporciona las funciones integradas para ayudarle a realizar diversas operaciones. No sepueden modificar. Puede utilizar funciones integradas en instrucciones Transact-SQL para: 7. Tener acceso a informacin de las tablas del sistema de SQL Server sin tener acceso a lastablas del sistema directamente. Para obtener ms informacin, vea Usar las funciones delsistema.Realizar tareas habituales como SUM, GETDATE o IDENTITY. Para obtener ms informacin,vea Funciones (Transact-SQL).Las funciones integradas devuelven tipos de datos escalares o table. Por ejemplo, @@ERROR devuelve0 si la ltima instruccin Transact-SQL se ejecut correctamente. Si la instruccin gener un error,@@ERROR devuelve el nmero de error. Y la funcin SUM( parameter) devuelve la suma de todos losvalores del parmetro.Consultas agregadasLa clausula GROUP BY combina los registros con valores idnticos en un nico registro. Para cadaregistro se puede crear un valor agregado si se incluye una funcin SQL agregada, como por ejemploSum o Count, en la instruccin SELECT. Su sintaxis es:SELECT [ALL | DISTINCT ] [{,}][{,}]FROM |[{,|}][WHERE [{ AND|OR }]][GROUP BY [{,}]][HAVING [{ AND|OR }]][ORDER BY | [ASC | DESC] [{,| [ASC | DESC ]}]] GROUP BY es opcional. Si se utiliza GROUP BY pero no existe una funcin SQL agregada en lainstruccin SELECT se obtiene el mismo resultado que con una consulta SELECT DISTINCT. Losvalores Null en los campos GROUP BY se agrupan y no se omiten. No obstante, los valores Null no seevalan en ninguna de las funciones SQL agregadas. Todos los campos de la lista de campos de SELECT deben incluirse en la clusula GROUP BY o comoargumentos de una funcin SQL agregada.SELECT marca, modelo, SUM(numero_kilometros)FROM tCochesGROUP BY marca, modeloLa clusula HAVING Una vez que GROUP BY ha combinado los registros, HAVING muestra cualquierregistro agrupado por la clusula GROUP BY que satisfaga las condiciones de la clusula HAVING. Seutiliza la clusula WHERE para excluir aquellas filas que no desea agrupar, y la clusula HAVING parafiltrar los registros una vez agrupados.HAVING es similar a WHERE, determina qu registros se seleccionan. Una vez que los registros se hanagrupado utilizando GROUP BY, HAVING determina cules de ellos se van a mostrar. HAVING permiteel uso de funciones agregadas.SELECT marca, modelo, SUM(numero_kilometros)FROM tCochesWHERE marca BMWGROUP BY marca, modeloHAVING SUM(numero_kilometros)>100000 8. En el ejemplo anterior, no se cuentan los datos para todas las marcas menos "BMW", una vez que se hancontado, se evalua HAVING, y el conjunto de resultados devuelve solo aquellos modelos con ms de100.000 km.AVG.- Calcula la media aritmtica de un conjunto de valores contenidos en un campo especificado deuna consulta. Su sintaxis es la siguiente En donde expr representa el campo que contiene los datos numricos para los que se desea calcularla media o una expresin que realiza un clculo utilizando los datos de dicho campo. La media calculadapor Avg es la media aritmtica (la suma de los valores dividido por el nmero de valores). La funcin Avgno incluye ningn campo Null en el clculo. SELECT marca, modelo, AVG(numero_kilometros) FROM tCoches GROUP BY marca, modeloCount.- Calcula el nmero de registros devueltos por una consulta. Su sintaxis es la siguiente: Endonde expr contiene el nombre del campo que desea contar. La funcin Count no cuenta los registrosque tienen campos null a menos que expr sea el carcter comodn asterisco (*). Si utiliza un asterisco,Count calcula el nmero total de registros, incluyendo aquellos que contienen campos null. Count(*) esconsiderablemente ms rpida que Count(Campo). SELECT COUNT(*) FROM tCoches; SELECT marca, COUNT(modelo) FROM tCoches GROUP BY marca; SELECT marca, COUNT(DISTINCT modelo) FROM tCoches GROUP BY marca;Max, Min Devuelven el mnimo o el mximo de un conjunto de valores contenidos en un campoespecifico de una consulta. Su sintaxis es:En donde expr es el campo sobre el que se desea realizar el clculo. Expr pueden incluir el nombre de uncampo de una tabla, una constante o una funcin (la cual puede ser intrnseca o definida por el usuariopero no otras de las funciones agregadas de SQL).SELECT marca, modelo, MIN(numero_kilometros), MAX(numero_kilometros)FROM tCochesGROUP BY marca, modeloSum.- Devuelve la suma del conjunto de valores contenido en un campo especifico de una consulta. Susintaxis es:En donde expr respresenta el nombre del campo que contiene los datos que desean sumarse o unaexpresin que realiza un clculo utilizando los datos de dichos campos. Los operandos de expr puedenincluir el nombre de un campo de una tabla, una constante o una funcin (la cual puede ser intrnseca odefinida por el usuario pero no otras de las funciones agregadas de SQL).SELECT marca, modelo, SUM(numero_kilometros)FROM tCochesGROUP BY marca, modeloFunciones de valores simples:ABS(n)= Devuelve el valor absoluto de (n).CEIL(n)=Obtiene el valor entero inmediatamente superior o igual a "n".FLOOT(n) = Devuelve el valor entero inmediatamente inferior o igual a "n". 9. MOD (m, n)= Devuelve el resto resultante de dividir "m" entre "n".NVL (valor, expresin)= Sustituye un valor nulo por otro valor.POWER (m, exponente)= Calcula la potencia de un numero.ROUND (numero [, m])= Redondea nmeros con el numero de dgitos de precisin indicados.SIGN (valor)= Indica el signo del "valor".SQRT(n)= Devuelve la raz cuadrada de "n".TRUNC (numero, [m])= Trunca nmeros para que tengan una cierta cantidad de dgitos de precisin.VAIRANCE (valor)= Devuelve la varianza de un conjunto de valores.Funciones de grupos de valores:AVG(n)= Calcula el valor medio de "n" ignorando los valores nulos.COUNT (* | Expresin)= Cuenta el numero de veces que la expresin evala algn dato con valor no nulo.La opcin "*" cuenta todas las filas seleccionadas.MAX (expresin)= Calcula el mximo.MIN (expresin)= Calcula el mnimo.SUM (expresin)= Obtiene la suma de los valores de la expresin.GREATEST (valor1, valor2)= Obtiene el mayor valor de la lista.LEAST (valor1, valor2)= Obtiene el menor valor de la lista.Funciones que devuelven valores de caracteres:CHR(n) = Devuelve el carcter cuyo valor en binario es equivalente a "n".CONCAT (cad1, cad2)= Devuelve "cad1" concatenada con "cad2".LOWER (cad)= Devuelve la cadena "cad" en minsculas.UPPER (cad)= Devuelve la cadena "cad" en maysculas.INITCAP (cad)= Convierte la cadena "cad" a tipo titulo.LPAD (cad1, n[,cad2])= Aade caracteres a la izquierda de la cadena hasta que tiene una cierta longitud.RPAD (cad1, n[,cad2])= Aade caracteres a la derecha de la cadena hasta que tiene una cierta longitud.LTRIM (cad [,set])= Suprime un conjunto de caracteres a la izquierda de la cadena.RTRIM (cad [,set])= Suprime un conjunto de caracteres a la derecha de la cadena.REPLACE (cad, cadena_busqueda [, cadena_sustitucion])= Sustituye un carcter o caracteres de unacadena con 0 o mas caracteres.SUBSTR (cad, m [,n])= Obtiene parte de una cadena.TRANSLATE (cad1, cad2, cad3)= Convierte caracteres de una cadena en caracteres diferentes, segnun plan de sustitucin marcado por el usuario.Funciones que devuelven valores numricos:ASCII(cad)= Devuelve el valor ASCII de la primera letra de la cadena "cad".INSTR (cad1, cad2 [, comienzo [,m]])= Permite una bsqueda de un conjunto de caracteres en unacadena pero no suprime ningn carcter despus.LENGTH (cad)= Devuelve el numero de caracteres de cad.Funciones de conversin:TO_CHAR= Transforma un tipo DATE NUMBER en una cadena de caracteres.TO_DATE= Transforma un tipo NUMBER CHAR en DATE.TO_NUMBER= Transforma una cadena de caracteres en NUMBER. 10. Funciones en lnea de mltiples sentenciasLas funciones en lnea de mltiples sentencias son similares a las funciones en lnea excepto que elconjunto de resultados que devuelven puede estar compuesto por la ejecucin de varios consultasSELECT.El siguiente ejemplo muestra el uso de una funcin de tabla de multi sentencias. /* Esta funcin busca la tres cuentas con mayor saldo* y obtiene los tres ltimos movimientos de cada una* de estas cuentas*/CREATE FUNCTION fn_CuentaMovimietos()RETURNS @datos TABLE( -- Estructura de la tabla que devuelve la funcion. NumCuenta varchar(20), Saldo decimal(10,2), Saldo_anterior decimal(10,2), Saldo_posterior decimal(10,2), Importe_Movimiento decimal(10,2), FxMovimiento datetime)ASBEGIN -- Variables necesarias para la lgica de la funcion. DECLARE @idcuenta int, @numcuenta varchar(20), @saldo decimal(10,2) -- Cursor con las 3 cuentas de mayor saldo DECLARE CDATOS CURSOR FOR SELECT TOP 3 IDCUENTA, NUMCUENTA, SALDO FROM CUENTAS ORDER BY SALDO DESC OPEN CDATOS FETCH CDATOS INTO @idcuenta, @numcuenta, @saldo -- Recorremos el cursor WHILE (@@FETCH_STATUS = 0) BEGIN -- Insertamos la cuenta en la variable de salida INSERT INTO @datos (NumCuenta, Saldo) VALUES (@numcuenta, @saldo) -- Insertamos los tres ltimos movimientos de la cuenta INSERT INTO @datos (Saldo_anterior, Saldo_posterior,Importe_Movimiento, FxMovimiento ) SELECT TOP 3SALDO_ANTERIOR, SALDO_POSTERIOR,IMPORTE, FXMOVIMIENTO FROM MOVIMIENTOS WHERE IDCUENTA = @idcuenta ORDER BY FXMOVIMIENTO DESC -- Vamos a la siguiente cuenta FETCH CDATOS INTO @idcuenta, @numcuenta, @saldo 11. ENDCLOSE CDATOS; DEALLOCATE CDATOS; RETURNENDPara ejecutar la funcin: select * from fn_CuentaMovimietos()Funciones de conversin caracteres LOWER: Convierte a minsculas. UPPER: Convierte a maysculas. INITCAP: Convierte la primera letra de cada palabra en maysculas, y el resto en minscula. Atencin: Usar una funcin de conversin dentro de la clusula WHERE puede ser altamente ineficiente porque si la columna afectada forma parte de un ndice ste lo desactiva, provocando un bajo rendimiento.Funciones manipulacin caracteres CONCAT: Concatena dos valores. SUBSTR: Extrae una subcadena. LENGTH: Devuelve la longitud de la cadena. INSTR: Devuelve la posicin de un carcter o subcadena. LPAD: Justifica a la derecha la cadena. RPAD: Justifica a la izquierda la cadena.Funciones Numricas ROUND (columna | expresin, n)Redondea a n posiciones decimales. Si se omite n, no se redondea con decimales. Si n es negativo, losnmeros a la izquierda del punto decimal se redondean a decenas, centenas, ... TRUNC (columna | expresin, n)Trunca en la ensima posicin decimal. Si se omite n, sin lugares decimales. Si n esnegativa, los nmeros a la izquierda del punto decimal se truncan a cero. MOD (m, n)Devuelve el resto de la divisin de m por n.Ejemplos de funciones numricas SQL> SELECT ROUND (45.923, 2), ROUND (45.923, 0), ROUND (45.923, -1) FROM SYS.DUAL; Resultado: 45.92 46 50 SQL> SELECT TRUNC (45.923, 2), TRUNC (45,923), TRUNC (45.923, -1) FROM SYS.DUAL; Resultado: 45.92 45 40Funciones de conversin Conversin Implcita de datos De VARCHAR2 o CHARa NUMBER De VARCHAR2 o CHARa DATE De NUMBER a VARCHAR2 De DATEa VARCHAR2 12. Funciones de conversinTO_CHAR (nmero | fecha [,fmt]) Convierte un nmero o fecha en una cadena de caracteres VARCHAR2 con el modelo de formato fmt. 9: Representa un nmero 0: Fuerza a que se muestra el cero $: Signo de dlar L: Usa el signo de moneda local .: Imprime el punto decimal ;: Imprime el indicador de millar Para fechas, los fmt anteriores.Funciones de conversinTO_NUMBER (char) Convierte una cadena de caracteres con dgitos en un nmero.TO_DATE (char [,fmt]) Convierte una cadena de caracteres representando una fecha en un valor de fecha segn el fmt especificado. Si se omite el fmt, el formato es DD-MON-YY.NVL (expr1, expr2) Convierte un nulo (expr1) a un valor de tipo fecha, cadena o nmero (expr2).La Funcin DECODE Hace las veces de sentencia CASE o IF-THEN-ELSE, para facilitar consultas condicionales. Descifra una expresin despus de compararla con cada valor de bsqueda. Si la expresin es la misma que la bsqueda, se devuelve el resultado. Si se omite el valor por defecto, se devolver un valor nulo donde una bsqueda no coincida con ninguno de los valores resultantes.