5/16/2018 Diferencias Entre Oracle y Ms SQL Server - slidepdf.com
http://slidepdf.com/reader/full/diferencias-entre-oracle-y-ms-sql-server 1/14
5/16/2018 Diferencias Entre Oracle y Ms SQL Server - slidepdf.com
http://slidepdf.com/reader/full/diferencias-entre-oracle-y-ms-sql-server 2/14
1.
Última Actualización: 24/04/2001Se aplica a: Oracle 7.3 +, MS SQL Server 6.5 +
La siguiente tabla muestra algunas diferencias en los conceptos y terminología entreOracle y MS SQL Server:
Concepto / Plazo Oracle MS SQL Server
Base de datos del motor base de datos base de datos del servidor
Base de datos (colecciónde tablas) esquema base de datosFunciones grupos funciones grupos
Base de datos de la cuentade administrador,propietario de la base
dba sa, dbo
Los datos sobre la base dedatos
Diccionario deDatos- Una por cadaservidor
Base de datos de catálogo- Uno por base de datos"Maestro" base de datos- Una por cada servidor
Bloques y extensiones bloques yextensiones páginas y extensiones
Software de red SQL * Net Biblioteca de red
Flujo de datos deprotocolo
Sustrato de redtransparente(TNS)
Secuencia de datos tabular(TDS)
Entre mayúsculas yminúsculas de losnombres de tablas,columnas, etc
entremayúsculas yminúsculas
depende del orden de loscaracteres tipo, por defectoes entre mayúsculas yminúsculas
Sinónimos el apoyo No se admiteReadonly transacción el apoyo No se admite
5/16/2018 Diferencias Entre Oracle y Ms SQL Server - slidepdf.com
http://slidepdf.com/reader/full/diferencias-entre-oracle-y-ms-sql-server 3/14
2.
Última Actualización: 06/06/1999
Se aplica a: Oracle 7.3 +, MS SQL Server 6.5 +
La siguiente tabla muestra los tipos de datos correspondientes en Oracle y MS SQLServer:
Tipo de datos Oracle MS SQL Server
Cadena delongitud fija
CHAR (n)- Límite de 2 KB
CHAR (n), carácter (n)- Límite de 255 (6,5)- Límite de 8 KB (7.0)
Cadena delongitudvariable
VARCHAR2 (n),
VARCHAR (n)- Límite de 4 KB enuna columna- Límite de 32 KBen una variable- VARCHAR esobsoleto
VARCHAR (n), CHAR variable(n), CHARACTER VARYING (n)- Límite de 255 (6,5)- Límite de 8 KB (7.0)
EnteroINTEGER,INTEGER (n),SMALLINT
INTEGER (4 bytes),INT (4 bytes),SMALLINT (2 bytes),TINYINT (1 byte),
BIT (un poco)
Punto Fijo
Número, (n),número (n, d),Float, float (n),FLOAT (n, d)
NUM RICO, numérico (n),numérico (n, d),DECIMAL, DECIMAL (n),DECIMAL (n, d),DEC, DEC (n), diciembre (n, d),DINERO, smallmoney
De puntoflotante
DECIMALFloat, float (n), de doble precisión,REAL
Fecha FECHA
DATETIME, smalldatetime,
TIMESTAMP- TIMESTAMP de auto-actualización
BinariaRAW (n)- Límite de 255bytes
Binary (n), varbinary (n),BINARY variable (n)- Límite de 255 (6,5)- Límite de 8 KB (7.0)
5/16/2018 Diferencias Entre Oracle y Ms SQL Server - slidepdf.com
http://slidepdf.com/reader/full/diferencias-entre-oracle-y-ms-sql-server 4/14
Grandescadenas
LONG, LONG- Límite de 2 GB- Límite de uno porcada fila de la tablaCLOB
- Límite de 4 GB
TEXTO- Límite de 2 GB
Binary Large
LONG RAW- Límite de 2 GB- Límite de uno porcada fila de la tablaBLOB- Límite de 4 GB
IMAGEN- Límite de 2 GB
caracteresmulti-byte
NCHAR (n)NVARCHAR (n)
NCLOB- Los mismoslímites que CHAR,VARCHAR, CLOB
NCHAR (n), NACIONAL CHAR(n), de carácter nacional (n)NVARCHAR (n), NACIONALVARIABLE CHAR (n),CARÁCTER NACIONALVARIABLE (n)Ntext, text NACIONAL- Los mismos límites que CHAR,VARCHAR, TEXT
OS Archivo BFILE supported> <No
Identificador defila
implícita columnaROWID
(Utilizar una columna deidentidad)
OS seguromultinacional
MLSLABEL,MLSLABEL RAW
supported> <No
Número únicode 128 bits(UUID, GUID)
supported> <NoUNIQUEIDENTIFIER (versión7.0)
3.
Última Actualización: 14/06/2000Se aplica a: Oracle 7.3 +, MS SQL Server 6.5 +
La siguiente tabla muestra las diferencias en los límites de Oracle y MS SQL
Server:
Descripción Oracle MS SQL Server
Columnas por tabla 1000250 (6.5)1024 (7.0)
Tamaño de la fila ilimitado1962 bytes (6,5)8060 bytes (7,0)
5/16/2018 Diferencias Entre Oracle y Ms SQL Server - slidepdf.com
http://slidepdf.com/reader/full/diferencias-entre-oracle-y-ms-sql-server 5/14
- Incluye punteros, pero nolos datos, para el texto ycolumnas de imágenes
LONG y LONG RAWcolumnas por fila
1 (debe ser laúltima columna)
ilimitado (puntero de 16bytes por)
LOB, TEXT, y columnasde imágenes por fila
ilimitado(puntero de 16bytes por)
ilimitado (puntero de 16bytes por)
Los índices agrupadospor tabla
1 1
No índices agrupados portabla
ilimitado 249
Columnas por índice 16 16
ndice de tamaño de fila 2k bytes 900 bytes
Identificador de longitud 30 caracteres 30 caracteres (6,5)128 caracteres (7,0)
Tablas porSELECCIONAR
ilimitado16 (6.5)256 (7.0)
El código fuente porprocedimientoalmacenado
64KB (6.5)250 MB (7.0)
Datos de los límites detipo
(Ver tipos de datos )
4.
Última Actualización: 06/07/1999Se aplica a: Oracle 7.3 +, MS SQL Server 6.5 +
La mayoría de los operadores son los mismos en Oracle y MS SQL Server. Éstosson algunos que se diferencian:
Descripción Oracle MS SQL Server
La concatenación de cadenas texto1 | | texto2 cadena1 cadena2 +
5/16/2018 Diferencias Entre Oracle y Ms SQL Server - slidepdf.com
http://slidepdf.com/reader/full/diferencias-entre-oracle-y-ms-sql-server 6/14
5.
Última Actualización: 06/07/1999
Se aplica a: Oracle 7.3 +, MS SQL Server 6.5 +
Oracle y MS SQL Server ofrece muchas de las mismas funciones integradas. Porejemplo, ambos ofrecen ABS, CAD, REDONDO, superior, inferior, AVG,COUNT, SUM, ASCII, etc La siguiente tabla muestra algunas de las funcionescorrespondientes que no tienen el mismo nombre. Para obtener una lista completade más información, consulte "Migración de Aplicaciones de Oracle a SQL Server"
Descripción Oracle MS SQL Server
Más pequeño> entero = n CEIL TECHO
Módulo MOD %Truncar número TRUNCAR <none>
Máximo o el mínimonúmero o una cadena enla lista
MAYOR,POR LO MENOS
<none>
Traducir NULL para n NVL ISNULL
Return null si dos valoresson iguales
DECODE NULLIF
La concatenación decadenas
CONCAT (cad1, cad2) cad1 + cad2
Convierte ASCII acaracteres
Comisión de DerechosHumanos
CHAR
Capitalizar las letrasiniciales de las palabras
INITCAP <none>
Buscar cadena en cadena INSTR CHARINDEX
Encuentra el patrón en lacadena
INSTR PATINDEX
Cadena de longitud LONGITUD DATALENGTH
Pad cadena con espaciosen blanco
LPAD,RPAD <none>
Recorte caracteresiniciales o finales que nosean espacios en blanco
LTRIM (str, caracteres),RTRIM (str, caracteres)
<none>
Reemplazar caracteres enla cadena
CAMBIAR COSAS
Convertir el número de To_char STR, CAST
5/16/2018 Diferencias Entre Oracle y Ms SQL Server - slidepdf.com
http://slidepdf.com/reader/full/diferencias-entre-oracle-y-ms-sql-server 7/14
serie
Convertir cadena ennúmero
TO_NUMBER CAST
Obtener subcadena deuna cadena
SUBSTR SUBSTRING
Char para la traducciónen la cadena de caracteres
TRADUCIR <none>
Además de la fecha ADD_MONTH o + DATEADD
Fecha de la restaMONTHS_BETWEEN o-
DATEDIFF
ltimo día del mes LAST_DAY <none>
Tiempo de conversión dela zona
NEW_TIME <none>
día de la semanasiguiente después de lafecha especificada
Next_day <none>
Convertir fecha a cadena To_charDATENAME,CONVERTIR
Convertir cadena a fecha TO_DATE CAST
Convertir fecha con elnúmero
TO_NUMBER (to_char(d))
DATEPART
Fecha de vuelta RONDA CONVERTIR
Fecha en que se trunca TRUNCAR CONVERTIR
Fecha actual SYSDATE GETDATEConvertir hexadecimal abinario
HEXTORAW CAST
Convertir binario ahexadecimal
RAWTOHEX CONVERTIR
Si la declaración en unaexpresión
DECODECASO ...CUANDOo COALESCE
entrada número de
identificación del usuarioo el nombre UID, EL USUARIO
SUSER_ID,
SUSER_NAME
Identificación del númerode bases de datos delusuario o el nombre
UID, EL USUARIOUSER_ID,USER_NAME
El usuario actual USUARIO USUARIO
5/16/2018 Diferencias Entre Oracle y Ms SQL Server - slidepdf.com
http://slidepdf.com/reader/full/diferencias-entre-oracle-y-ms-sql-server 8/14
6.
Última Actualización: 03/21/2001Se aplica a: Oracle 7.3 +, MS SQL Server 6.5 +
En la tabla siguiente se muestra la sintaxis utilizada en diferentes Oracle y MS SQLServer para el mismo las operaciones de SQL:
Descripción Oracle MS SQL Server
Combinaciónexternaizquierda
DONDE column1 = Columna2 (+)
FROM tabla1LEFT OUTERJOIN tabla2 ONtable1.column1 =table2.column2
Nota: La siguientesintaxis también escompatible, peroya no serecomienda:DONDE column1*= Columna2
Combinaciónexterna derecha
DONDE column1 (+) = Columna2
FROM tabla1RIGHT OUTERJOIN tabla2 ONtable1.column1 =
table2.column2
Nota: La siguientesintaxis también escompatible, peroya no serecomienda:DONDE column1=* Columna2
Combinación
externacompleta
FROM tabla1FULL OUTER
JOIN tabla2 ONtable1.column1 =table2.column2
SELECT sin DE 'SELECT' hola mundo de la doble'Hola mundo'SELECT
datos deSELECT en una
CREATE TABLE AS SELECT...
SELECT ... INTO
5/16/2018 Diferencias Entre Oracle y Ms SQL Server - slidepdf.com
http://slidepdf.com/reader/full/diferencias-entre-oracle-y-ms-sql-server 9/14
tabla
Intersección dedosSELECCIONA
SELECT ... INTERSECTSELECT ...
SELECT ...DONDE EXISTE(SELECT ...)
Resta de dosSELECCIONA
SELECT ... MENOS SELECT ...
SELECT ...DONDE NO
EXISTE(SELECT ...)
INSERT en unJOIN
INSERT INTO SELECT ...Crear una vista yINSERT INTOella.
Actualizar datosen unacombinación
UPDATE SELECT ...Crear una vista yINSERT INTOella.
UPDATE unatabla basada encriterios de otratabla
supported> <No UPDATE FROMtabla ...
Eliminar filas deuna tabla basadaen criterios deotra tabla
supported> <NoDELETE FROMtabla FROM ...
Quitar unacolumna de una
tabla
<No apoyado hasta Oracle 8i>
ALTER TABLEnombre_tablaDROP COLUMN
nombre_columnaReadonlyVISTA
CREATE VIEW ... CON
READONLY
GRANT SELECT...
Punto paraSalvar
SAVEPOINTSALVAR LATRANSACCIÓN
Tabla debloqueos
LOCK TABLE ... IN SHAREMODE
SELECT ...table_name(TABLOCK)
bloqueo de tabla
Exclusiva
LOCK TABLE ... en modo
exclusivo
SELECT ...table_name(TABLOCKX)
La reserva deespacio deíndice
PCTFREE = 0FILLFACTOR =100
Declarar unavariable local
DECLARO tipo varname;DECLARE @ tipovarname
Inicializar una DECLARO tipo varname: = valor; supported> <No
5/16/2018 Diferencias Entre Oracle y Ms SQL Server - slidepdf.com
http://slidepdf.com/reader/full/diferencias-entre-oracle-y-ms-sql-server 10/14
variable local
Declarar unaconstante
varname DECLARARCONSTANTES tipo: = valor;
supported> <No
Asignar a unavariable
varname: valor =valor SELECT INTO varname
SET @nombre_var =valorSELECT @nombre_var =valor
Asignar a unavariable de uncursor
cursorname TRAER EN varnameFETCH NEXTcursorname DE ENvarname
La declaración
de un cursor
CURSOR CurName (s param)
ES SELECT ...;
DECLARECURSORCurName PARA
SELECCIONAR...
Si la declaración
SI ... ENTONCESELSIF ... ENTONCESMÁSENDIF
SI ...EMPEZAR ... FINElse begin ... FIN
WhileMIENTRAS ... LAZOEND LOOP
MIENTRAS ...EMPEZAR ... FIN
Otros lazosPARA ... END LOOPLAZO ... END LOOP
supported> <No
Bucle de salida SALIR, SALIR AL BREAK,CONTINUE
Impresión desalida
DBMS_OUTPUT.PUT_LINE IMPRESIÓN
Levante de error RAISE_APPLICATION_ERROR RAISERROR
Declaración determinación
Punto y coma (;)required><Ninguna
Gracias a Tom Johnston para la captura de un error en este consejo. Tuve el
DOBLE DE en la columna equivocada.
5/16/2018 Diferencias Entre Oracle y Ms SQL Server - slidepdf.com
http://slidepdf.com/reader/full/diferencias-entre-oracle-y-ms-sql-server 11/14
7.
Última Actualización: 06/06/1999Se aplica a: Oracle 7.3 +, MS SQL Server 6.5 +
La siguiente tabla muestra algunas diferencias semánticas entre Oracle y MS SQLServer:
Descripción Oracle MS SQL Server
Comprometerse Compromisoexplícitodeclaraciónrequerida
Automática a menos que cometanIMPLICIT_TRANSACTIONSSET
Lectura de datosno confirmados
Base de datos sereversión
temporal internopara reconstruirlos datos másrecientescometidos por loslectores.
Dependiendo de las opciones,lector puede leer datos sin
confirmar, o se ve obligado aesperar para el escritor paraconfirmar o deshacer.
Liberar los datosdel cursor
CERRARCURSOR liberatodos los datos.No se puedevolver a abrir.
CERRAR cursor no publicacióndel informe. Usted debe llamarexplícitamente a CURSORDEALLOCATE. Hasta entonces,puede volver a abrir el cursor.
Implícito deconversión dedatos en unadeclaración comola siguientedonde vc es unacolumna de tipoVARCHAR2:
SELECT *FROM personaSiendo Vc = 123
En cada fila serecupera de latabla, se realizaun intento paraconvertirlo en unnúmero para lacomparación con123. Si cualquierfila contiene unvalor que no sepuede convertiren un número, unerror de tiempode ejecución.
El número 123 se convierte en lacadena '123 'una vez, y luego losdatos se obtienen de la tabla. Sicualquier fila contiene un valor queno se puede convertir en unnúmero, simplemente no secorresponde con '123 'y se salta sinningún error.
La conversión aNULL
Marco unacolumnaVARCHAR2a''(la cadena
Configuración de una columnaVARCHAR a''la convierte en lacadena vacía (no es NULL).
5/16/2018 Diferencias Entre Oracle y Ms SQL Server - slidepdf.com
http://slidepdf.com/reader/full/diferencias-entre-oracle-y-ms-sql-server 12/14
vacía) se hacenulo.
8.
Última Actualización: 06/06/1999Se aplica a: Oracle 7.3 +, MS SQL Server 6.5 +
La siguiente tabla muestra algunas diferencias en cómo se gestionan las bases dedatos en Oracle y MS SQL Server:
Descripción Oracle MS SQL Server
Modelo debase de datos
No hay basede datosmodelo
Recién bases de datos creadas heredancaracterísticas (usuarios, etc) a partir de labase de datos especial llamado "modelo".
9.
Última Actualización: 06/06/1999Se aplica a: Oracle 7.3 +, MS SQL Server 6.5 +
La siguiente tabla muestra algunas diferencias en cómo los objetos de base de datos(tablas, vistas, procedimientos almacenados, etc) se manejen de Oracle y MS SQLServer:
Descripción Oracle MS SQL Server
Nombrecompleto
[Esquema.] Tabla[Esquema.]Ampliar
[[Servidor [.]] Base de datos [.] []Propietario.] Tabla[[Servidor [.]] Base de datos [.] []Propietario.] Ampliar
Temp tablas
8i Pre: Las tablastemporales se debeneliminarexplícitamente
8i +: CREATEtabla temporal
global
tabla # - Cualquier tabladenominada a partir de un signode número (#) se borraautomáticamente cuando elusuario cierra la sesión o delprocedimiento de los fines.# # Mesa - Igual que el anterior,excepto que la tabla es accesible aotros usuarios.
Re-crear unobjeto
CREATE ORREPLACE ...
LA GOTA ...CREAR ...
Crear vista CREAR FUERZA No se admite. Tablas utilizadas
5/16/2018 Diferencias Entre Oracle y Ms SQL Server - slidepdf.com
http://slidepdf.com/reader/full/diferencias-entre-oracle-y-ms-sql-server 13/14
antes de lastablasdependientes
DE VISTA por vista debe existir antes vistapuede ser creado.
10.
Última Actualización: 06/06/1999Se aplica a: Oracle 7.3 +, MS SQL Server 6.5 +
La siguiente tabla muestra algunas diferencias en cómo los usuarios se gestionan deOracle y MS SQL Server:
Descripción Oracle MS SQL Server
La pertenenciaa grupos
Cada usuario puede sermiembro de cualquier
número de grupos.
Cada usuario puede sermiembro de un solo grupo
que no sea "pública".
11.
Última Actualización: 06/06/1999Se aplica a: Oracle 7.3 +, MS SQL Server 6.5 +
La siguiente tabla muestra las diferentes técnicas utilizadas en Oracle y MS SQLServer para interactuar con MS ADO, RDO, etc:
Descripción Oracle MS SQL Server
Devolver un conjuntode registros a lapersona que llama
Devuelve unidentificador de uncursor.Para más información:Véase el artículo de KBQ174679 de MS.
SELECT sin cláusulaINTO;Selecciona varias talesregresar variosconjuntos de registros
5/16/2018 Diferencias Entre Oracle y Ms SQL Server - slidepdf.com
http://slidepdf.com/reader/full/diferencias-entre-oracle-y-ms-sql-server 14/14
12.
Última Actualización: 06/06/1999Se aplica a: Oracle 7.3 +, MS SQL Server 6.5 +
La siguiente tabla muestra las diferencias entre los diversos Oracle y MS SQLServer:
Descripción Oracle MS SQL Server
Generar números únicosCREATESEQUENCE
IDENTIDADcolumna de unatabla
Cascada SUPRDELETECASCADE ...
(Uso dedisparadores)
Llamar a una función definida por el
usuario a partir de una instrucciónSQL (como la columna de SELECT oexpresión en la cláusula WHERE)
el apoyo No se admite