Diferencias Entre Oracle y Ms SQL Server
Diferencias Entre Oracle y Ms SQL Server
Diferencias Entre Oracle y Ms SQL Server
ltima Actualizacin: 24/04/2001 Se aplica a: Oracle 7.3 +, MS SQL Server 6.5 + La siguiente tabla muestra algunas diferencias en los conceptos y terminologa entre Oracle y MS SQL Server: Concepto / Plazo Base de datos del motor Base de datos (coleccin de tablas) Funciones grupos Oracle base de datos esquema funciones MS SQL Server base de datos del servidor base de datos grupos sa, dbo Base de datos de catlogo - Uno por base de datos "Maestro" base de datos - Una por cada servidor pginas y extensiones Biblioteca de red Secuencia de datos tabular (TDS) depende del orden de los caracteres tipo, por defecto es entre maysculas y minsculas No se admite No se admite
Base de datos de la cuenta de administrador, dba propietario de la base Diccionario de Los datos sobre la base de Datos datos - Una por cada servidor Bloques y extensiones Software de red Flujo de datos de protocolo Entre maysculas y minsculas de los nombres de tablas, columnas, etc Sinnimos Readonly transaccin bloques y extensiones SQL * Net Sustrato de red transparente (TNS) entre maysculas y minsculas el apoyo el apoyo
2.
ltima Actualizacin: 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 SQL Server: Tipo de datos Cadena de longitud fija Oracle CHAR (n) - Lmite de 2 KB VARCHAR2 (n), VARCHAR (n) - Lmite de 4 KB en una columna - Lmite de 32 KB en una variable - VARCHAR es obsoleto INTEGER, INTEGER (n), SMALLINT MS SQL Server CHAR (n), carcter (n) - Lmite de 255 (6,5) - Lmite de 8 KB (7.0)
VARCHAR (n), CHAR variable (n), CHARACTER VARYING (n) - Lmite de 255 (6,5) - Lmite de 8 KB (7.0)
Entero
INTEGER (4 bytes), INT (4 bytes), SMALLINT (2 bytes), TINYINT (1 byte), BIT (un poco) NUMRICO, numrico (n), numrico (n, d), DECIMAL, DECIMAL (n), DECIMAL (n, d), DEC, DEC (n), diciembre (n, d), DINERO, smallmoney Float, float (n), de doble precisin, REAL DATETIME, smalldatetime, TIMESTAMP - TIMESTAMP de autoactualizacin Binary (n), varbinary (n), BINARY variable (n) - Lmite de 255 (6,5) - Lmite de 8 KB (7.0)
Punto Fijo
Nmero, (n), nmero (n, d), Float, float (n), FLOAT (n, d) DECIMAL
FECHA
Binaria
Grandes cadenas
LONG, LONG - Lmite de 2 GB - Lmite de uno por TEXTO cada fila de la tabla - Lmite de 2 GB CLOB - Lmite de 4 GB LONG RAW - Lmite de 2 GB - Lmite de uno por IMAGEN cada fila de la tabla - Lmite de 2 GB BLOB - Lmite de 4 GB NCHAR (n), NACIONAL CHAR (n), de carcter nacional (n) NCHAR (n) NVARCHAR (n), NACIONAL NVARCHAR (n) VARIABLE CHAR (n), NCLOB CARCTER NACIONAL - Los mismos VARIABLE (n) lmites que CHAR, Ntext, text NACIONAL VARCHAR, CLOB - Los mismos lmites que CHAR, VARCHAR, TEXT BFILE supported> <No (Utilizar una columna de identidad)
Binary Large
caracteres multi-byte
OS Archivo
3.
ltima Actualizacin: 14/06/2000 Se aplica a: Oracle 7.3 +, MS SQL Server 6.5 + La siguiente tabla muestra las diferencias en los lmites de Oracle y MS SQL Server: Descripcin Columnas por tabla Tamao de la fila Oracle 1000 ilimitado MS SQL Server 250 (6.5) 1024 (7.0) 1962 bytes (6,5) 8060 bytes (7,0)
- Incluye punteros, pero no los datos, para el texto y columnas de imgenes LONG y LONG RAW columnas por fila 1 (debe ser la ilimitado (puntero de 16 ltima columna) bytes por) ilimitado (puntero de 16 bytes por) 1 249 16 900 bytes 30 caracteres (6,5) 128 caracteres (7,0) 16 (6.5) 256 (7.0) 64KB (6.5) 250 MB (7.0) (Ver tipos de datos )
ilimitado LOB, TEXT, y columnas (puntero de 16 de imgenes por fila bytes por) Los ndices agrupados por tabla 1
No ndices agrupados por ilimitado tabla Columnas por ndice ndice de tamao de fila 16 2k bytes
Identificador de longitud 30 caracteres Tablas por SELECCIONAR El cdigo fuente por procedimiento almacenado Datos de los lmites de tipo ilimitado
4.
ltima Actualizacin: 06/07/1999 Se aplica a: Oracle 7.3 +, MS SQL Server 6.5 + La mayora de los operadores son los mismos en Oracle y MS SQL Server. stos son algunos que se diferencian: Descripcin La concatenacin de cadenas Oracle texto1 | | texto2 MS SQL Server cadena1 cadena2 +
5.
ltima Actualizacin: 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. Por ejemplo, ambos ofrecen ABS, CAD, REDONDO, superior, inferior, AVG, COUNT, SUM, ASCII, etc La siguiente tabla muestra algunas de las funciones correspondientes que no tienen el mismo nombre. Para obtener una lista completa de ms informacin, consulte "Migracin de Aplicaciones de Oracle a SQL Server" Descripcin Ms pequeo> entero = n CEIL Mdulo Truncar nmero Mximo o el mnimo nmero o una cadena en la lista Traducir NULL para n MOD TRUNCAR MAYOR, POR LO MENOS NVL Oracle MS SQL Server TECHO % <none> <none> ISNULL NULLIF cad1 + cad2 CHAR <none> CHARINDEX PATINDEX DATALENGTH <none>
Return null si dos valores DECODE son iguales La concatenacin de cadenas Convierte ASCII a caracteres Capitalizar las letras iniciales de las palabras CONCAT (cad1, cad2) Comisin de Derechos Humanos INITCAP
Buscar cadena en cadena INSTR Encuentra el patrn en la INSTR cadena Cadena de longitud LONGITUD Pad cadena con espacios LPAD, en blanco RPAD
Recorte caracteres LTRIM (str, caracteres), iniciales o finales que no <none> RTRIM (str, caracteres) sean espacios en blanco Reemplazar caracteres en CAMBIAR la cadena Convertir el nmero de To_char COSAS STR, CAST
serie Convertir cadena en nmero Obtener subcadena de una cadena TO_NUMBER SUBSTR CAST SUBSTRING <none> DATEADD
Char para la traduccin TRADUCIR en la cadena de caracteres Adems de la fecha Fecha de la resta ltimo da del mes ADD_MONTH o +
Tiempo de conversin de NEW_TIME la zona da de la semana siguiente despus de la fecha especificada Next_day
Convertir fecha a cadena To_char Convertir cadena a fecha TO_DATE Convertir fecha con el nmero Fecha de vuelta Fecha en que se trunca Fecha actual
TO_NUMBER (to_char DATEPART (d)) RONDA TRUNCAR SYSDATE CONVERTIR CONVERTIR GETDATE CAST CONVERTIR CASO ... CUANDO o COALESCE SUSER_ID, SUSER_NAME USER_ID, USER_NAME USUARIO
Convertir hexadecimal a HEXTORAW binario Convertir binario a hexadecimal Si la declaracin en una expresin RAWTOHEX DECODE
entrada nmero de identificacin del usuario UID, EL USUARIO o el nombre Identificacin del nmero de bases de datos del UID, EL USUARIO usuario o el nombre El usuario actual USUARIO
6.
ltima Actualizacin: 03/21/2001 Se aplica a: Oracle 7.3 +, MS SQL Server 6.5 + En la tabla siguiente se muestra la sintaxis utilizada en diferentes Oracle y MS SQL Server para el mismo las operaciones de SQL: Descripcin Oracle MS SQL Server FROM tabla1 LEFT OUTER JOIN tabla2 ON table1.column1 = table2.column2 Combinacin externa izquierda DONDE column1 = Columna2 (+) Nota: La siguiente sintaxis tambin es compatible, pero ya no se recomienda: DONDE column1 *= Columna2 FROM tabla1 RIGHT OUTER JOIN tabla2 ON table1.column1 = table2.column2 Combinacin DONDE column1 (+) = Columna2 Nota: La siguiente externa derecha sintaxis tambin es compatible, pero ya no se recomienda: DONDE column1 =* Columna2 Combinacin externa completa SELECT sin DE 'SELECT' hola mundo de la doble datos de CREATE TABLE AS SELECT SELECT en una ... FROM tabla1 FULL OUTER JOIN tabla2 ON table1.column1 = table2.column2 'Hola mundo' SELECT SELECT ... INTO
tabla Interseccin de SELECT ... INTERSECT dos SELECT ... SELECCIONA SELECT ... DONDE EXISTE (SELECT ...)
SELECT ... Resta de dos DONDE NO SELECT ... MENOS SELECT ... SELECCIONA EXISTE (SELECT ...) INSERT en un JOIN INSERT INTO SELECT ... Crear una vista y INSERT INTO ella. Crear una vista y INSERT INTO ella. UPDATE FROM tabla ...
Actualizar datos en una UPDATE SELECT ... combinacin UPDATE una tabla basada en supported> <No criterios de otra tabla Eliminar filas de una tabla basada supported> <No en criterios de otra tabla Quitar una columna de una <No apoyado hasta Oracle 8i> tabla Readonly VISTA Punto para Salvar Tabla de bloqueos CREATE VIEW ... CON READONLY SAVEPOINT LOCK TABLE ... IN SHARE MODE
DELETE FROM tabla FROM ... ALTER TABLE nombre_tabla DROP COLUMN nombre_columna GRANT SELECT ... SALVAR LA TRANSACCIN SELECT ... table_name (TABLOCK) SELECT ... table_name (TABLOCKX) FILLFACTOR = 100 DECLARE @ tipo varname
bloqueo de tabla LOCK TABLE ... en modo Exclusiva exclusivo La reserva de espacio de ndice Declarar una variable local Inicializar una PCTFREE = 0 DECLARO tipo varname;
variable local Declarar una constante varname DECLARAR CONSTANTES tipo: = valor; supported> <No SET @ nombre_var = valor SELECT @ nombre_var = valor
FETCH NEXT cursorname TRAER EN varname cursorname DE EN varname CURSOR CurName (s param) ES SELECT ...; DECLARE CURSOR CurName PARA SELECCIONAR ... SI ... EMPEZAR ... FIN Else begin ... FIN MIENTRAS ... EMPEZAR ... FIN supported> <No BREAK, CONTINUE IMPRESIN
SI ... ENTONCES ELSIF ... ENTONCES Si la declaracin MS ENDIF While Otros lazos MIENTRAS ... LAZO END LOOP PARA ... END LOOP LAZO ... END LOOP
Gracias a Tom Johnston para la captura de un error en este consejo. Tuve el DOBLE DE en la columna equivocada.
7.
ltima Actualizacin: 06/06/1999 Se aplica a: Oracle 7.3 +, MS SQL Server 6.5 + La siguiente tabla muestra algunas diferencias semnticas entre Oracle y MS SQL Server: Descripcin Comprometerse Oracle Compromiso explcito declaracin requerida Base de datos se reversin temporal interno para reconstruir los datos ms recientes cometidos por los lectores. MS SQL Server Automtica a menos que cometan IMPLICIT_TRANSACTIONS SET Dependiendo de las opciones, lector puede leer datos sin confirmar, o se ve obligado a esperar para el escritor para confirmar o deshacer.
Liberar los datos CERRAR del cursor CURSOR libera todos los datos. No se puede volver a abrir. Implcito de conversin de datos en una declaracin como la siguiente donde vc es una columna de tipo VARCHAR2: En cada fila se recupera de la tabla, se realiza un intento para convertirlo en un nmero para la comparacin con 123. Si cualquier fila contiene un valor que no se SELECT * FROM persona puede convertir Siendo Vc = 123 en un nmero, un error de tiempo de ejecucin. La conversin a NULL Marco una columna VARCHAR2 a''(la cadena
CERRAR cursor no publicacin del informe. Usted debe llamar explcitamente a CURSOR DEALLOCATE. Hasta entonces, puede volver a abrir el cursor. El nmero 123 se convierte en la cadena '123 'una vez, y luego los datos se obtienen de la tabla. Si cualquier fila contiene un valor que no se puede convertir en un nmero, simplemente no se corresponde con '123 'y se salta sin ningn error.
Configuracin de una columna VARCHAR a''la convierte en la cadena vaca (no es NULL).
8.
ltima Actualizacin: 06/06/1999 Se aplica a: Oracle 7.3 +, MS SQL Server 6.5 + La siguiente tabla muestra algunas diferencias en cmo se gestionan las bases de datos en Oracle y MS SQL Server: Descripcin Modelo de base de datos Oracle MS SQL Server
No hay base Recin bases de datos creadas heredan de datos caractersticas (usuarios, etc) a partir de la modelo base de datos especial llamado "modelo".
9.
ltima Actualizacin: 06/06/1999 Se aplica a: Oracle 7.3 +, MS SQL Server 6.5 + La siguiente tabla muestra algunas diferencias en cmo los objetos de base de datos (tablas, vistas, procedimientos almacenados, etc) se manejen de Oracle y MS SQL Server: Descripcin Nombre completo Oracle [Esquema.] Tabla [Esquema.] Ampliar MS SQL Server [[Servidor [.]] Base de datos [.] [] Propietario.] Tabla [[Servidor [.]] Base de datos [.] [] Propietario.] Ampliar
Temp tablas
tabla # - Cualquier tabla 8i Pre: Las tablas denominada a partir de un signo temporales se deben de nmero (#) se borra eliminar automticamente cuando el explcitamente usuario cierra la sesin o del procedimiento de los fines. 8i +: CREATE # # Mesa - Igual que el anterior, tabla temporal excepto que la tabla es accesible a global otros usuarios. CREATE OR REPLACE ... LA GOTA ... CREAR ...
DE VISTA
10.
ltima Actualizacin: 06/06/1999 Se aplica a: Oracle 7.3 +, MS SQL Server 6.5 + La siguiente tabla muestra algunas diferencias en cmo los usuarios se gestionan de Oracle y MS SQL Server: Descripcin Oracle MS SQL Server Cada usuario puede ser miembro de un solo grupo que no sea "pblica".
Cada usuario puede ser La pertenencia miembro de cualquier a grupos nmero de grupos.
11.
ltima Actualizacin: 06/06/1999 Se aplica a: Oracle 7.3 +, MS SQL Server 6.5 + La siguiente tabla muestra las diferentes tcnicas utilizadas en Oracle y MS SQL Server para interactuar con MS ADO, RDO, etc: Descripcin Oracle MS SQL Server SELECT sin clusula INTO; Selecciona varias tales regresar varios conjuntos de registros
Devuelve un identificador de un Devolver un conjunto cursor. de registros a la Para ms informacin: persona que llama Vase el artculo de KB Q174679 de MS.
12.
ltima Actualizacin: 06/06/1999 Se aplica a: Oracle 7.3 +, MS SQL Server 6.5 + La siguiente tabla muestra las diferencias entre los diversos Oracle y MS SQL Server: Descripcin Generar nmeros nicos Cascada SUPR Oracle CREATE SEQUENCE MS SQL Server IDENTIDAD columna de una tabla
Llamar a una funcin definida por el usuario a partir de una instruccin el apoyo SQL (como la columna de SELECT o expresin en la clusula WHERE)