viernes, 15 de mayo de 2009

posición de una subcadena(sql server, oracle)

Charindex la función se usa en Microsoft SQL Server para recuperar la posición de una subcadena en la cadena especificada. Oracle utiliza la función INSTR. Estas funciones tienen la misma sintaxis y difieren en el parámetro de orden.

Ejemplo del uso Charindex
1> DECLARE @FullName VarChar(25), @SpaceIndex TinyInt
2> SET @FullName = 'www.asp.net'
3>
4> -- Obtener el índice de delimitado de el espacio:
5> SET @SpaceIndex = CHARINDEX('asp', @FullName)
6> -- retorna todos los caracteres de la izquieda del espacio
7> SELECT LEFT(@FullName, @SpaceIndex - 1)
8> GO

repuesta:
www.


Ejemplo de conversion de Microsoft SQL Server CHARINDEX para oracle Oracle









Microsoft SQL Server
Oracle
CREATE PROCEDURE sql_sp_charindex
as
begin
DECLARE @a VARCHAR(10)
DECLARE @b VARCHAR(10)
charindex (@a,@b)
end;

CREATE OR REPLACE PROCEDURE sql_sp_charindex
AS
v_a VARCHAR2(10);
v_b VARCHAR2(10);
BEGIN
INSTR(v_b,v_a);
end;

CREATE PROCEDURE sql_sp_charindex2
as
begin
DECLARE @a VARCHAR(10)
DECLARE @b VARCHAR(10)
charindex (@a,@b,1)
end;
CREATE OR REPLACE PROCEDURE sql_sp_charindex2
AS
v_a VARCHAR2(10);
v_b VARCHAR2(10);
BEGIN
INSTR(v_b,v_a,1);
end;


Tambien puede combinar con el sub string

Ejemplo

DECLARE @FullName VarChar(25)
SET @FullName = 'www.asp.net'

SELECT SUBSTRING(@FullName, 1,CHARINDEX('asp', @FullName) - 1)
GO


respuesta:
www.

1 comentario:

Andy00 dijo...

me parece fabulos que este escribiendo "CJ" esta en mi blog como prefrido y recomendado; so me doy cuenta cuando escribies(e seguido tus ejemplos y me han funcinado) buso pues..