Alternatives to Toad [closed] - database

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I'm currently using Toad for my day-to-day work on our databases (queries, updates, small scripts, browsing of db objects, etc.).
My question is: since my version of Toad is old and buggy, which are the (possibly free, but not necessarily) alternatives to Toad?
The database versions we are using are 10g and 9i.
Thanks a lot.

Oracle's SQL Developer.

PL/SQL Developer from http://www.allroundautomations.nl/. Presented between a choice between Toad and PL/SQL developer, about half the developers prefer PL/SQL developer. I have to admit the code completion in PL/SQL developer is much better, but I still prefer Toad for the DBMS management functionality.

TOra is an another good option. I used the pre GPL version for years. It's a good simple SQL tool for Oracle.
It supports schema browsing, analyse plan, limited debugging plus all the stuff you'd expect.

I've used Squirrel-SQL (which is a Java/JDBC based program and will work with any OS or database that provides a driver) and the database development tools for Eclipse (Eclipse-DTP). Both are certainly sufficient for light database work. Both are free and open-source.

After trying other products for some months, I'm back to Toad.
And I have to admit that (IMHO, and for the type of use that I'm doing of it): I've found no alternative to Toad.
The indispensable features that are missing in other products are:
Speed. Toad is blazingly fast; SQL Developer starts to crawl if you open more than 2 or 3 connections. When you have to operate with time constraints, you really can't wait SQL Developer to open.
The "open a new window until commit" functionality (a new window is opened after an insert or update statement, and you are forced to commit or rollback). Really handy to avoid pending commits.
The "execute current statement" functionality (shift-F9). SQL Developer doesn't have it, or you are forced to select the query you want to execute.

I'm surprised that nobody has mentioned DbVisualizer yet. Our company has been using it for a few years and everybody seems happy with it. It's powerful, runs on multiple platforms (Java-based) and supports different database systems (Oracle, DB2, MS Access etc). It has a free version; a commercial version is available if you need more features.

Simple answer:
Use Textpad or another text editor.
Explanation:
For me PL/SQL development is a process that has evolved over time. I've tried to apply continuous improvement to SQL development and it has worked out wonderfully for me. (for more on continuous improvement/Kaizen see link text)
I found PL/SQL IDE tools to be unstable.
I've had several crashes of Quest Software's TOAD as well as Quest Software's SQL Navigator (I've been using it since Version 3).
I lost work.
I tried other IDE PL/SQL tools.
These tools also crashed.
I lost work again.
I got frustrated.
I do not trust PL/SQL software development to any of the PL/SQL IDE tools out there.
Here are my PL/SQL coding core practices:
1. Export code using Quest Software TOAD
2. Use a Cygwin bash script to move files into the appropriate directories
3. Compare versions via BeyondCompare (if needed)
4. Check code out of WinCVS / CVSNT (if needed)
5. Edit using TextPad
6. Compare versions via BeyondCompare (if needed)
7. Check code in to WinCVS / CVSNT (if needed)
8. Use a Cygwin bash script to create a master changes file.
9. Import code back using Quest Software TOAD
An even more lengthy explanation:
I use Quest Software TOAD to export all PL/SQL and table DDL code to the filesystem.
In the Database menu -> Export -> Source Code
In the Database menu -> Export -> Table Scripts
This gets me individual files for each database object.
I move these files (Cygwin bash script) in directories
based on the file extensions.
*.prc files in /procedures
*.fnc files in /functions
*.pks and *.pkb files in /proceudres
*.trg files in /triggers
*.vw files in /views
*.sql files in /table_scripts
These files are initially checked into CVS.
(I use WinCVS/CVSNT server side)
I Beyond Compare each file version exported by TOAD
with the version already in CVS.
I ensure that the CVS sql repository is up to date.
In other words I need to have a good starting baseline.
I then use TextPad to edit the PL/SQL code.
link text
I pre-configure my Textpad with SQL syntax files
to make it easier on the eyes
link text
After editing, I Beyond Compare each edited
file version exported with the version
in WinCVS.
Luckily, WinCVS allows you to use an external
diff (Beyond Compare) which comes in very handy.
I load the new/changed code via TOAD to a test schema.
In the SQL Editor menu -> Load and Execute a Script File
I test the code out. (do some debug runs)
If the code tests out, I check the code into CVS.
At the end, I use Cygwin bash (and a bash script I've written) to create a master changes file. This master changes file contains all of the changes that need to be applied to bring the live schema up to date. This saves me a lot of time.
I then load the new/changed code via TOAD to a live schema. In the SQL Editor menu -> Load and Execute a Script File. That's about it. Software engineering is about process, versioning (CVS) and automating builds (bash script).
The biggest lesson out of all this (that have made me 10 times more productive) was switching from DB-based PL/SQL IDEs to simple ASCII text files. KIS in action.
If a copy your code resides in an ASCII file you avoid:
- mucking up the DB
- locking up DB objects
- iffy DB based revision control tools (if any)
- iffy DB diff tools (if any)
- losing code due to IDE crashes
- losing code due to DB crashes / shutdowns
- losing code due to concurrent editing (this can happen if two or more PL/SQL developers edit the same procedure)
Instead if you handle all PL/SQL code in filesystem ASCII files you have
- your choice of text editors (TextPad,notepad++,vi,etc)
- your choice of revision control systems (CVS,svn)
- your choice of text filtering/handling/scripting systems (I like Cygwin bash)
- your choice of diff tools (Beyond Compare,WinDiff,diff)
- your choice of DB tools (I can use TOAD, SQL Navigator) for importing and exporting the PL/SQL code to files.
I wanted a version history of all code changes.
I wanted to get everyone working together and prevent developers from stepping on each other's toes.
I wanted the freedom to choose my tools.
The side effect of this is that I handle all of the DB code in the filesystem during rapid development.
Just my 2 cents.

I'll toss in my vote for SQLPal. It's free. Most of the features it has works really well (auto-competition has never seemed to work). I'm using it against a 10g database daily and it works great.

I've been using Golden from Benthic Software as a SQL*Plus replacement for a long time and love it.
http://www.benthicsoftware.com/products.htm

If we had to pay then I would strongly recommend PL/SQL Developer for database code writting and TOAD for administration tasks.
From the free solutions I've been using so far especially four of them: (Oracle) SQL Developer, SQL Tools, SQLPal and TORA.
I've found SQL Developer as the one with the most utilities.
Unfortunately its java GUI makes it prone to hanging too much often.
SQL Tools is a very nice instrument except one thing: it has not an
auto-fill functionality / code-completion (e.g. table names and columns). If you could
pass this issue then ... go for it.
SQLPal it's good as long as you have to look at only one database
object at time. I just don't understand why displaying a simply
new window is, in fapt, meaning to open a completely new instance
of the application. It has its auto-fill functionality but that makes it very laggy. I would place a minus for its JDBC only available connection option. Such limitation makes it sometimes to hang while waiting to retrieve database metadictionay information.
TORA - it's a nice tool except the code completion ... I just couldn't make it working. And from the forums I could get that this is a pretty common problem. Otherwise its GUI is
almost flawless.
My conclusion: I hate to say it, I am an open-source fan but ... simply buy PL/SQL Developer / TOAD if you have to work intensively with such tools .

I would also recommend Oracle's SQL Developer, however I've found WinSQL to be quite good as well. SQL Developer is free and WinSQL has a community version that is quite robust, and works well against other platforms too (I also use it for working with Netezza).

I've used OraDeveloper by DevArt to connect to Oracle databases. It's nice because it plugs into Visual Studio in much the same way as the SQL Server databases can be queried through Server Explorer. It is not free, but in our case it came free with the purchase of OraDirect .Net, which is a new provider that allows Oracle to work with Microsoft's Entity Framework.

Having done 3 years in one job using TOAD, and now 5 years in current job using PL/SQL Developer, I would say overall TOAD is a better tool, but if you are specifically developing stored procedures in PL/SQL, PL/SQL Developer is better.
Don't forget get to set up the context sensitive help (under Help - HTML Manuals)

You could also use sqltools, which some of my colleagues prefer. I never got used to it, but looks powerful.

I use PL/SQL Developer for running multiple queries and stored procedure development, as it's rock solid, and you can kill the process via Task Manager, and get back all your windows upon starting up again.
I use TOAD for browsing, as that functionality can't be beat. But it's flaky on me, hanging, etc, although that is probably my computer..
I would buy both. I have both open now.
For accessing odd sources (OSISoft PI, JDE on AS400, 4D, Access, Excel), I use Advanced Query Tool. It's great to be able to use SQL against an Excel sheet of a proposed table, to create your DDL.

I love Toad. I had to switch to Embarcadero's Rapid SQL for two months and it damn near killed me. So while I don't know of any products that are better than Toad, I can say without reservation that Rapid SQL is wholly inadequate.

We are using RazorSQL for Oracle and also DB2. It is low cost and has a ton of features.

PLSQL Developer very good for Oracle DBMS, specifically for Stored Proc, but not so well for the DBMS management.

Just to throw it out there - did you know you can grab the beta of Toad 4.1 and use that for free? The betas are always free to the public.

I've used Embarcadero DBArtisan (not free)
I thought it was good.

I second the SQL Developer comments. FWIW, the newer versions of Toad are much more stable than the golden oldies were. I'm using Toad 9.7 and it's quite good.

I'm using PL/SQL Developer, which I think one of the best oracle database tools, it's lite and fast, I have one copy in my USB flash to allow me to use it in any pc(you just copy it from the program files folder and place it in the flash and it will work fine).
Also I bought OraDeveloper from DevArt three months ago, it's has some good features, but it's slower than PL/SQL Developer and require .Net framekwork. but the good thing that it has direct connection to Oracle, so you can use it from any PC without requiring Oracle client to be installed.
Another tools is EMS SQL Management Studio for Oracle, which looks nice, and have some nice features specially with import/export from other format.
http://sqlmanager.net/en/products/studio/oracle
and for free one you can use AnySQL Maestro, which has support for Oracle/MySql/Sql server and offer AnySql Maestro for free
http://www.sqlmaestro.com/

I've tried most of the tools suggested above, and found that I prefer this one over all of them (including TOAD):
SQLDetective

SQL Studio for Oracle is really nice...

Dreamcoder offers good set of tools for Database Management.

I prefer both Toad or SQL Developer. But I give more preference to Toad because of features like-
If you want to update your select result in toad, just add the ROWID
is your select statement. Once you select the records with ROWID then
you can edit/update your result grid.
Also, the session and Database monitoring monitoring features are much better in Toad. The only downside of Toad is that it requires Oracle SQL Client to be installed (which may be the case with any other non-Oracle branded tool), on the other hand Oracle SQL Client installation is not necessary for SQL Developer.

Worked with PL/SQL developer. It rocks.

Related

Trying to deploy an Entity Framework Code First application without much luck? Best Deployment strategy?

Despite a few hiccups and a few workarounds, my MVC based Entity Framework (Code First) application is now complete and ready for deployment.
I originally tried developing through SQL Express, however, I had non stop problems with the Code First approach as I asked about here which made it completely unworkable.
So, in the end, I developed it following the majority of guidelines and used SQL Compact Edition. This has been absolutely brilliant for development - but - now it has come to deployment and I am stuck.
I have seen some people saying about generating the Schema from the .SDF file, however, there are differences and restrictions in Compact edition such as nvarchar being limited to a length of 4000, and I need max in my application.
So basically, what can I do?
In addition - but not essential - , I am going to be moving on to the next project shortly, It will involve heavy usage of items needing to be stored in a database that are longer than 4000 characters. Are there any better strategies now for development / Is it possible to use Code First with SQL Server Express or SQL Full (I have MSDN and willing to install/use anything that will help).
Here are my unofficial recommendations:
SQL CE is not a viable option for most production applications that are based on MVC (although I have used it in production services in rare cases).
I would try to avoid switching databases between development and production - i.e., don't test on SQL CE and deploy to SQL Express or something else.
I have never tried to open an MDF inside of Visual Studio - maybe I'm misunderstanding what you're saying here, but in general I'd recommend using the SQL Server-specific tools to manage databases: http://www.microsoft.com/download/en/search.aspx?q=sql+server+management+studio+express.
Regarding the other post, I would generally discourage using the AttachDBFilename portion of connection strings unless you need it for a specific purpose.
It sounds like you may want to review the available database initialization strategies: http://blog.oneunicorn.com/2011/03/31/configuring-database-initializers-in-a-config-file/.
There are lots of walkthroughs on our blog and the MVC MSDN site - if those don't work for you feel free to reach out to us from our blog and provide feedback on what we can do better!
Our blog: http://blogs.msdn.com/b/adonet/
MVC walkthroughs: http://www.asp.net/mvc/tutorials/getting-started-with-mvc3-part4-cs
On the one hand regarding deployment/migration you might want to take a look at http://exportsqlce.codeplex.com
On the other hand I've been checking Microsoft SQL Server Compact 4.0 Books Online and in principle there is no known issues with data types, although the limitation you mentioned for nvarchar is confirmed.
Finally in order to elaborate a strategy you might find interesting the Differences Between SQL Server Compact and SQL Server
You need to create a debug and a release specific web.config file:
In the release specific file you remove the connection string, so it creates a database for you.
In the debug specific file you keep the connection string.
However, I would suggest you to not use a connection string and use SQL Management Studio instead. Given that the Compact Edition does not support your requirement, this is a good time to switch...

SQL Server Compact - Schema Management

I've been searching for some time for a good solution to implement the idea of managing schema on an SQL Server Compact 3.5 database.
I know of several ways of managing schema on SQL Server Express, SQL Server Standard, SQL Server Enterprise, but the Compact Edition doesn't support the necessary tools required to use the same methodology.
Any suggestions/tips?
I should expand this to say that it is for 100+ clients with wrapperware software. As the system changes, I need to publish update scripts alongside the new binaries to the client. I was looking for a decent method by which to publish this without having to just hand the client a script file and say "Run this in SSMSE". Most clients are not capable of doing such a beast.
A buddy of mine disclosed a partial script on how to handle the SQL Server piece of my task, but never worked on Compact Edition. It looks like I'll be on my own for this.
What I think that I've decided to do, and it's going to need a "geek week" to accomplish, is to write some sort of a tool much like how WiX and NAnt works, so that I can just write an overzealous XML document to handle the work.
If I think that it is worthwhile, I'll publish it on CodePlex and/or The Code Project because I've used both sites a bit to gain better understanding of concepts for jobs I've done in the past, and I think it is probably worthwhile to give back a little.
Edit on 5/3/2010:
If someone is willing to "name" the project, I'll upload the dirty/nasty version that I've written for MS SQL to CodePlex so that maybe we can start hacking out a version of SQL Compact. Although, I think with the next revision of the initial application that I was planning, I'm going to be abandoning SQL Compact and just use XML Files for storage, as the software is being converted from an Installable package to being a Silverlight application. Silverlight just gives a better access strategy.
I am currently looking into Migrator.Net.
This allows you to write changes to your database, called migrations, directly in C#.
These migrations can contain everything from simple table additions/drops, column modifications, to complicated data update code.
When your application boots, it can verify what version the database is currently in and apply any migrations that are required to bring it up to date. All this is handled automatically. The code to run this update is as simple as:
Assembly asm = Assembly.Load("LocalModels.migration");
Migrator m = new Migrator("SqlServerCe", "Data Source=LocalModels.sdf", asm, false);
m.MigrateToLastVersion();
I am having a couple minor issues with the Compact support (it assumes the default schema is dbo). But I don't think it will be too difficult to fix them.
some random thoughts (not sure I can fully answer though)
the Microsoft Sync Framework is one option. I haven't had a chance to fully appreciate what it can do once you've deployed it after the initial first time (which seems to work fine). There's a MSDN site for it here
You can execute scripts on a mobile device, but not through something like SQL Management Studio, so in theory you could manage/maintain T-SQL scripts but the down side is that the T-SQL would be convoluted (to CE's supported statements) and I don't know a way to "automate" execution - but the Sync Framework might hold some answers..
If one of your key criteria is going to be working efficiently over a small pipe, the only real choice you have is to store a DB Schema Version (maybe somehow tied to the scripts checked into your CMS) and when an update is needed, the change scripts are sent over the wire and applied in order. You would probably want to keep a log in your DB as well of these scripts being applied so you can gracefully handle disconnects, reboots and other potentially nasty problems.
Is SQL Server Management Studio any use for you?
http://technet.microsoft.com/en-us/library/ms172933.aspx

PowerBuilder app with embedded database?

Is it possible to use e.g. SQLite with PowerBuilder? I need an embedded open source database (no additional costs).
Like Bernard said, you'll need an ODBC driver, so as long as you're willing to go third party (if I understand the SQLite situation correctly), that should be no problem.
That said, if you have PowerBuilder, you have license to distribute the single-user SQL Anywhere run time engine. If no-cost is your only criteria, and you're only connecting locally, SQL Anywhere may be an option to evaluate. Not only is it an incredibly solid database, but there's a much larger base of documentation and experience connecting PowerBuilder to SQL Anywhere, so if you run into problems, you're more likely to get some help.
Good luck.
I don't believe that PowerBuilder contains a driver for native support to SQLite. But it definitely has a driver for ODBC, so that is always an option even if it isn't the most efficient one.
I used to use SQL Anywhere, but eventually ditched it for the reasons Joe Landau gave - can't change the schema using the distributable runtime engine.
I switched to Firebird, which has an embedded version, and that seems solid. The only issue is that the ODBC driver I'm using (Gemini), which seems to be the best one available, seems to have gone out of business. (I just checked - it seems to be available on other sites.) And you have to add the following to your PBODB*.INI file:
[Firebird]
PBSyntax='Firebird_SYNTAX'
PBNoCatalog='YES'
[Firebird_SYNTAX]
CreateTable='CREATE TABLE &TableName (::ColumnElement[::ColumnElement]...)'
ColumnElement='&ColumnName &DataType'
DropTable='DROP TABLE &TableName'
GetIdentity='Select gen_id(GEN_&TableName,0) from RDB$DATABASE'
I've been very happy with it. Using it for almost 2 years, with over 1,000 users, and no problems whatsoever. You can also easily switch to the Firebird server version if some users need that.
As noted, SQL Anywhere is available and solid. But it has a disadvantage--you can't change the schema using the run time engine. This makes it hard to, say, add a column to a db that you have distributed.
++ to the comments by DC on Firebird. One of the best free databases out there. I have used it for years for a PB application I sell to Law Firms.
Although I use the server version even if the target is a single workstation. Simplifies the deployment and the issue of adding workstations later if desired.
I use the standard Firebird ODBC driver at http://www.firebirdsql.org/index.php?op=files&id=odbc
There are two good GUI front database management tools that I hve used - IBOConsole and Flamerobin.

Is there an open source SQL Server DB compare tool? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I'm working on an open source project that uses SQL Server 2005 as the data store. We need a DB compare tool to generate diff scripts to be able to upgrade a DB from one version to another.
Is there an open source or free SQL Server DB diff tool out there that generates a convert script?
I think that Open DBiff does a good job.
It's simple and I works with SQL Server 2005/2008.
But only generate the change script. Nothing more and nothing less.
On CodePlex I noticed yesterday DbDiff (http://www.codeplex.com/OpenDBiff) that you could try. Supports Sql2005 and 2008, I did not try it.
I'd recommend spending some cash and getting Red Gate's SQL Compare tool which does an excellent job, and can even compare databases to Visual Studio database projects to generate upgrade scripts. It's fast and easy to use, and works well. The upgrade scripts are also of decent quality.
It's not that expensive. Probably less expensive than your time. Just think about how much your hourly rate is, and how many hours it might take to investigate an open-source tool and get it working (and how many you have already spent), then multiply them together. That's how much a 'free' tool is really costing you, which is often significantly more than a commercial tool.
It's not open source, but is free (as in beer): Sql Effects Accord (aka Clarity) Community Edition
AdeptSQL Diff and DataDiff are wonderful products, much cheaper than RedGate's and a much more simplified UI, and I have yet to run into a scenario it cannot handle.
Aloha
You might want to try SqlDbDiff. It can generate change scripts. The free edition does a good enough job.
Anyone try xSQL Bundle (xSQL Data Compare and xSQL Object Compare)? Our place only uses for DB diffs, no syncs, so can't say for syncing but the diff and reports are not bad.
Also, OpenDBDiff has a spin off, not sure which is better - http://code.google.com/p/sql-dbdiff/
Anyone know if any of the free/open source DB diff tools mentioned here offer scriptable / command line interface to automate the diffs and synching?
I looked into xSQL tools, they offer command line access but unfortunately, no scriptable command to export diff results to (report) file.
While it's not exactly what you want, I found this for postgres:
http://mbk.projects.postgresql.org/
It doesn't generate a diff to apply, but rather allows you to merge a full dump of the new version of the table with the previous version.
Hmm, none that I know of. You can always retrieve the definitions as SQL and then run a diff tool on them, but it's a bit of a pain in the rear.
Probably the best solution for this is using some kind of "Migrations" tool, so you can keep your database definitions together with your code, and version them, etc.
Update
On Sourceforge I found Whiz SQL Structure Compare with this description: Whiz is a database diff utility which will be useful to find difference between two MS-SQL Server databases. It also able to generate SQL script to update the changes from one database to another database.
However, I've been unsuccessful in getting it to work so far...
We have both SQL Delta and SQL Compare. Each has strengths, but each also have weaknesses that make them quite a pain.
SQL Delta will miss some triggers in its comparison, and it will take actions not found in the action list, and it will sometimes take actions you did not want it to take. That was discovered at quite a cost in time.
SQL Compare will catch the triggers, but they are embedded within the table listings. On a large database, that means going through each table and sifting them out. Something the tool should have isolated for us. Again, quite a cost in time.
Its is a little late, but I just relased a real simple project on code plex:
http://dbcompare.codeplex.com
Enter (or build) two connection strings and it will compare all Tables, Views and Stored Procedures.

Database compare tools

My company has a number of relatively small Access databases (2-5MB) that control our user assisted design tools. Naturally these databases evolve over time as data bugs are found and fixed and as the schema changes to support new features in the tools. Can anyone recommend a database diff tool to compare both the data and schema from one version of the database to the next? Any suggestions will be appreciated: free, open source, or commercial.
I use Red Gate Sql Compare for comparing schemas. It also has an interesting feature that allows you to save a snapshot of the schema which you can then use in later diffs. for example compare the schema of today with the schema of a month ago.
I use ApexSQL Diff. It is an excellent tool for doing just what you're describing...compare schema, compare data, generate change scripts. It not free, but it works well.
NOTE: ApexSQL Diff only works with SQL Server.
We never actually purchased it as we ended up using SQL Server 2005, but DBDiff seemed to do the trick: http://www.dkgas.com/downdbdiff.cgi
It works with any ODBC compatible DB.
I've used Total Access Detective in the past and it did the trick. It's a while ago though so you might want to investigate first...
If you're looking for a free alternative to Red Gate's most excellent SQL Compare, you might want to check SQLDBDigg made by SQLDBTools. It's what I used until I caved and bought SQL Compare.
It's not a perfect solution, but I often export both databases as txt/SQL files and then use a diff program, such as the one that comes with TortoiseSVN. You can then see all of the differences. It doesn't automatically create the SQL though to sync the dbs.
http://www.diffkit.org
Features
High performance, for large datasets (+10MM rows).
Very low memory overhead, even on very large datasets.
High quality-- comprehensive embedded regression test suite for the application/framework.
Java run everywhere (tm) — Linux, Solaris, OS X, Windows, etc.
Cross database-- Oracle, MySQL, DB2, and any JDBC datasource.
Command-line driven; no GUI needed; can run in headless environments.
XML configuration file driven.
Free Open Source Software.
Apache License, Version 2.0.
Clean Object Oriented Design make extension easy.
Easily embeddable as a Java library (jar).

Resources