Hiển thị các bài đăng có nhãn MYSQL. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn MYSQL. Hiển thị tất cả bài đăng

Sqline Online Conversion de Sentencias SQL,MariaDB,Oracle...



Sqline Online

Sqlines proporciona herramientas de código abierto para ayudarlo a migrar bases de datos en la nube, transferencia de datos, convertir esquema de base (DDL), vistas, procedimientos almacenados, paquetes, funciones, disparadores, consultas SQL scripts, incrustado de SQL y bases de datos del API entre base de datos.

La herramienta SQLines está disponible en las ediciones Online y Desktop:

Pros: La herramienta de migracion de sentencias que proporciona SQLines nos permite hacer cambios en distintas bases de datos con una compatibilidad y exactitud muy alta comparadas con otras herramientas online.

Contras: SQLines online no posee una API ni una linea de comandos para su uso y experimentacion de la sentencias, no posee una interfaz muy amigable ni actual(sencilla).

SQLines.com posee una alta gamma de compatibilidad con la mayoria de las bases de datos.

  • Oracle
  • MS SQL Server
  • IBM DB2
  • Sybase ASE
  • Sybase SQL Anywhere
  • Sybase Advantage
  • Informix
  • Hive
  • MySQL
  • MariaDB
  • PostgreSQL
  • Redshift
  • Teradata
  • Greenplum
  • Netezza

Ejemplos

Les daremos muestras del uso de la herramienta de conversion de sentencias, mostraremos diferentes conversiones a distintos bases de datos, como Oracle MySql, MS Sql, entre otros.

Ejemplo 1

SQL

1. CREATE FUNCTION dbo.ISOweek (@DATE datetime)
2. RETURNS int
3. WITH EXECUTE AS CALLER
4. AS
5. BEGIN
6. DECLARE @ISOweek int;
7. SET @ISOweek= DATEPART(wk,@DATE)+1
8. -DATEPART(wk,CAST(DATEPART(yy,@DATE) as CHAR(4))+'0104');
9. --Special cases: Jan 1-3 may belong to the previous year
10. IF (@ISOweek=0)
11. SET @ISOweek=dbo.ISOweek(CAST(DATEPART(yy,@DATE)-1
12. AS CHAR(4))+'12'+ CAST(24+DATEPART(DAY,@DATE) AS CHAR(2)))+1;
13. --Special case: Dec 29-31 may belong to the next year
14. IF ((DATEPART(mm,@DATE)=12) AND
15. ((DATEPART(dd,@DATE)-DATEPART(dw,@DATE))>= 28))
16. SET @ISOweek=1;
17.RETURN(@ISOweek);
18. END;
19. GO
20. SET DATEFIRST 1;
21. SELECT dbo.ISOweek(CONVERT(DATETIME,'12/26/2004',101)) AS 'ISO Week';

Oracle

1. CREATE OR REPLACE FUNCTION dbo.ISOweek (@DATE timestamp)
2. RETURN number IS
3. BEGIN
4. WITH
5. END; EXECUTE IMMEDIATE AS CALLER
6. AS
7. BEGIN
8. @ISOweek number(10);
9. @ISOweek:= TO_NUMBER(TO_CHAR(@DATE, 'wk'))+1
10. -TO_NUMBER(TO_CHAR(CAST, 'wk'(TO_NUMBER(TO_CHAR(@DATE, 'yy')) as CHAR(4))+'0104'));
11. --Special cases: Jan 1-3 may belong to the previous year
12. IF (@ISOweek=0)
13. SET @ISOweek=dbo.ISOweek(CAST(TO_NUMBER(TO_CHAR(@DATE, 'yy'))-1
14. AS CHAR(4))+'12'+ CAST(24+TO_NUMBER(TO_CHAR(@DATE, 'DAY')) AS CHAR(2)))+1;
15. --Special case: Dec 29-31 may belong to the next year
16. IF ((TO_NUMBER(TO_CHAR(@DATE, 'mm'))=12) AND
17. ((TO_NUMBER(TO_CHAR(@DATE, 'dd'))-TO_NUMBER(TO_CHAR(@DATE, 'dw')))>= 28))
18. SET @ISOweek=1;
19. RETURN(@ISOweek);
20. END;
21. GO
22. SET DATEFIRST 1;
23. SELECT dbo.ISOweek(CONVERT(DATETIME,'12/26/2004',101)) AS 'ISO Week' FROM dual;

Ejemplo 2

SQL

1. IF OBJECT_ID ( 'Production.uspGetList', 'P' ) IS NOT NULL
2. DROP PROCEDURE Production.uspGetList;
3. GO
4. CREATE PROCEDURE Production.uspGetList @Product varchar(40)
5. , @MaxPrice money
6. , @ComparePrice money OUTPUT
7. , @ListPrice money OUT
8. AS
9. SET NOCOUNT ON;
10. SELECT p.[Name] AS Product, p.ListPrice AS 'List Price'
11. FROM Production.Product AS p
12. JOIN Production.ProductSubcategory AS s
13. ON p.ProductSubcategoryID = s.ProductSubcategoryID
14. WHERE s.[Name] LIKE @Product AND p.ListPrice < @MaxPrice;
15. -- Populate the output variable @ListPprice.
16. SET @ListPrice = (SELECT MAX(p.ListPrice)
17. FROM Production.Product AS p
18. JOIN Production.ProductSubcategory AS s
19. ON p.ProductSubcategoryID = s.ProductSubcategoryID
20. WHERE s.[Name] LIKE @Product AND p.ListPrice < @MaxPrice);
21. -- Populate the output variable @compareprice.
22. SET @ComparePrice = @MaxPrice;
23. GO

MariaDB

1. IF OBJECT_ID ( 'Production.uspGetList', 'P' ) IS NOT NULL
2. DROP PROCEDURE Production.uspGetList;
3. GO
4. DELIMITER //
5. 6. CREATE PROCEDURE Production.uspGetList ( @Product varchar(40)
7. , @MaxPrice decimal
8. , @ComparePrice decimal) OUTPUT
9. //
10. 11. DELIMITER ;
12. 13. 14. , @ListPrice money OUT
15.AS
16. SET NOCOUNT ON;
17. SELECT p.[Name] AS Product, p.ListPrice AS 18. 'List Price'
18. FROM Production.Product AS p
19. JOIN Production.ProductSubcategory AS s
20. ON p.ProductSubcategoryID = s.ProductSubcategoryID
21. WHERE s.[Name] LIKE @Product AND p.ListPrice < @MaxPrice;
22. -- Populate the output variable @ListPprice.
23. SET @ListPrice = (SELECT MAX(p.ListPrice)
24. FROM Production.Product AS p
25. JOIN Production.ProductSubcategory AS s
26. ON p.ProductSubcategoryID = s.ProductSubcategoryID
27. WHERE s.[Name] LIKE @Product AND p.ListPrice < @MaxPrice);
28. -- Populate the output variable @compareprice.
29. SET @ComparePrice = @MaxPrice;
30. GO

Ejemplo 3

SQL

1. CREATE FUNCTION dbo.ufn_FindReports (@InEmpID INTEGER)
2. RETURNS @retFindReports TABLE
3. (
4. EmployeeID int primary key NOT NULL,
5. FirstName nvarchar(255) NOT NULL,
6. LastName nvarchar(255) NOT NULL,
7. JobTitle nvarchar(50) NOT NULL,
8. RecursionLevel int NOT NULL
9. )
10. --Returns a result set that lists all the employees who report to the
11. --specific employee directly or indirectly.*/
12. AS
13. BEGIN
14. WITH EMP_cte(EmployeeID, OrganizationNode, FirstName, LastName, JobTitle,           RecursionLevel) -- CTE name and columns
15. AS (
16. -- Get the initial list of Employees for Manager n
17. SELECT e.BusinessEntityID, e.OrganizationNode, p.FirstName, p.LastName,                   e.JobTitle, 0
18. FROM HumanResources.Employee e
19. INNER JOIN Person.Person p
20. ON p.BusinessEntityID = e.BusinessEntityID
21. WHERE e.BusinessEntityID = @InEmpID
22. UNION ALL
23. -- Join recursive member to anchor
24. SELECT e.BusinessEntityID, e.OrganizationNode, p.FirstName, p.LastName, e.JobTitle, RecursionLevel + 1
25. FROM HumanResources.Employee e
26. INNER JOIN EMP_cte
27. ON e.OrganizationNode.GetAncestor(1) = EMP_cte.OrganizationNode
28. INNER JOIN Person.Person p
29. ON p.BusinessEntityID = e.BusinessEntityID
30. )
31. -- copy the required columns to the result of the function
32. INSERT @retFindReports
33. SELECT EmployeeID, FirstName, LastName, JobTitle, RecursionLevel
34. FROM EMP_cte
35. RETURN
36. END;
37. GO
38. -- Example invocation
39. SELECT EmployeeID, FirstName, LastName, JobTitle, RecursionLevel
40. FROM dbo.ufn_FindReports(1);
41.
42. GO

PostgreSQL

1. CREATE OR REPLACE FUNCTION dbo.ufn_FindReports (@InEmpID INTEGER)
2. RETURNS @retFindReports TABLE
3.
4. BEGIN TABLE
5. (
6. EmployeeID
7. $$ LANGUAGE plpgsql; int primary key NOT NULL,
8. FirstName nvarchar(255) NOT NULL,
9. LastName nvarchar(255) NOT NULL,
10. JobTitle nvarchar(50) NOT NULL,
11. RecursionLevel int NOT NULL
12. )
13. --Returns a result set that lists all the employees who report to the
14. --specific employee directly or indirectly.*/
15. AS
16. BEGIN
17. WITH EMP_cte(EmployeeID, OrganizationNode, FirstName, LastName, JobTitle,           RecursionLevel) -- CTE name and columns
18. AS (
19. -- Get the initial list of Employees for Manager n
20. SELECT e.BusinessEntityID, e.OrganizationNode, p.FirstName, p.LastName, e.JobTitle, 0
21. FROM HumanResources.Employee e
22. INNER JOIN Person.Person p
23. ON p.BusinessEntityID = e.BusinessEntityID
24. WHERE e.BusinessEntityID = @InEmpID
25. UNION ALL
26. -- Join recursive member to anchor
27. SELECT e.BusinessEntityID, e.OrganizationNode, p.FirstName, p.LastName, e.JobTitle, RecursionLevel + 1
28. FROM HumanResources.Employee e
29. INNER JOIN EMP_cte
30. ON e.OrganizationNode.GetAncestor(1) = EMP_cte.OrganizationNode
31. INNER JOIN Person.Person p
32. ON p.BusinessEntityID = e.BusinessEntityID
33. )
34. -- copy the required columns to the result of the function
35. INSERT @retFindReports
36. SELECT EmployeeID, FirstName, LastName, JobTitle, RecursionLevel
37. FROM EMP_cte
38. RETURN
39. END;
40. GO
41. -- Example invocation
42. SELECT EmployeeID, FirstName, LastName, JobTitle, RecursionLevel
43. SELECT EmployeeID, FirstName, LastName, JobTitle, RecursionLevel
44.
45. GO

Si te ayudo esta informacion, compartela y reacciona!!

Simulador de MySQL, Oracle, MS SQL Server, SQL Lite PosgreSQL online




SQLFiddle

SQLFiddle.com es una herramienta de procesamiento de consultas SQL en línea. Esto significa que puede ejecutar sus sentencias de SQL en línea sin tener una base de datos instalada locamente. Puede superar la función en la que puede tener una base de datos dentro de un disco portátil y enchufarla para su uso en cualquier lugar.
También está diseñado para soportar múltiples bases de datos. A continuación hay una lista de bases de datos soportadas:
  1. MySQL.
  2. Oracle.
  3. PostgreSQL.
  4. SQLite (WebSQL).
  5. MS SQL Server 2012.
Hice una demostración rápida de esta herramienta y, a continuación, se enumeran mis experiencias:
  1. Visita http://www.sqlfiddle.com
  2. Elegir base de datos.
  3. En el área de texto en el lado izquierdo, ingrese los scripts para construir el esquema, es decir, crear tablas, insertar datos, etc.
  4. Construir esquema.
  5. Asegúrese de que se crea con éxito.
  6. En el área de texto a la derecha, ingrese los scripts SQL y RUN.
  7. La salida se muestra en la pantalla.
  8. Practica tanto como quieras.
  9. Puedes ver los planes explicados también.
  10. Además, puede guardar las consultas iniciando sesión con un OPEN_ID ( https://openid.net/start-using-your-openid/ ).
  11. La próxima vez, cuando inicie sesión, los scripts se rellenarán.
  12. Crea un esquema y listo.
  13. Disfrutar.

¿Qué se supone que debo hacer aquí?

Si no conoce los conceptos básicos de SQL o bases de datos, este sitio no le será muy útil. Sin embargo, si usted es un desarrollador de bases de datos, hay algunos casos de uso diferentes de SQL Fiddle que están diseñados para usted:
Desea ayuda con una consulta complicada y le gustaría publicar una pregunta en un sitio de Q / A como StackOverflow . Cree una base de datos representativa (esquema y datos) y publique un enlace a ella en su pregunta. Las URL únicas para cada base de datos (y cada consulta) se generarán a medida que utilice el sitio; simplemente copie y pegue la URL que desea compartir, y estará disponible para cualquier persona que quiera echar un vistazo.

Luego podrán usar su DDL y su SQL como punto de partida para responder a su pregunta. Cuando tienen algo que les gustaría compartir con usted, pueden enviarle un enlace a su consulta.
Desea comparar y contrastar sentencias de SQL en diferentes bases de datos de bases de datos. SQL Fiddle le permite cambiar fácilmente con qué proveedor de base de datos (MySQL, PostgreSQL, MS SQL Server, Oracle y SQLite) se ejecutan sus consultas. Esto le permitirá evaluar rápidamente los esfuerzos de transferencia de consultas, u opciones de idioma disponibles en cada entorno.

No tiene una plataforma de base de datos en particular disponible, pero le gustaría ver cómo se vería una consulta en ese entorno. Con el uso del Fiddle de SQL, no necesita molestarse en realizar una instalación completa para su evaluación; simplemente crea tu base de datos y consultas aquí!¿Qué se supone que debo hacer aquí?

¿Como funciona?

El esquema DDL que se proporciona se utiliza para generar una base de datos privada sobre la marcha. Si se cambia algo en su DDL (¡incluso un solo espacio!), Se le pedirá que genere un nuevo esquema y estará operando en una nueva base de datos.

Todas las consultas SQL se ejecutan dentro de una transacción que se retrotrae inmediatamente después de que se ejecuta el SQL.

Esto es para que la estructura de la base de datos subyacente no cambie de una consulta a otra, lo que hace posible compartir de forma anónima en línea con cualquier número de usuarios (cada uno de los cuales puede estar escribiendo consultas en la misma base de datos compartida, lo que podría modificar la estructura y, por lo tanto, - Si no fuera por la reversión - los resultados de cada uno).
A medida que cree esquemas y escriba consultas, las URL únicas que se refieren a su esquema particular y su consulta estarán visibles en su barra de direcciones.

Puedes compartirlos con cualquiera, y ellos podrán ver lo que has hecho hasta ahora. También podrá usar las funciones normales de su navegador como 'atrás', 'adelante' y 'recargar', y verá las diferentes etapas de su trabajo, como es de esperar.

Si te ayudo esta informacion, compartela y reacciona!!