Hello, everyone, and welcome to this Toad for Oracle update. I'm John Pocknell, product manager for the Toad portfolio.
So in this session, I want to talk about not only our most recent release, but also going back a couple of releases that we did in last year, 2017. So you can see in this schedule the releases that we made in 2017 as well as the 2018 release that we've had.
As you can see, this schedule includes Toad for Oracle, but it also includes other products that make up the Toad for Oracle editions, depending upon which edition you have. And I'll explain what comes with each edition in a second. But you can see that there are a number of other products, including Toad Data Modeler and Code Tester, each of which have had some enhancements over the last 12 or so months.
But the main theme of Toad for Oracle has been to streamline the usage of Toad-- so improve the usability, improve the workflow, simplify some of the windows-- particularly the compare windows database schema and data compare. And in fact, Data Compare is a new feature that we added last year, as well. So the ability to compare multiple tables and the data in multiple tables-- improve their schema compare capabilities so you can compare one-to-one, one-to-many, as well as many-to-many.
Also, we've including some features which helped support bringing agile database development into DevOps. So, for example, the ability to indicate a pass-fail status when you do a code review, enhancements to code testers-- so, for example, bring a unit test into version control. So far as version control support, we also now include support for distributed version control such as Git and Mercurial.
So let's get into some of the details of this release. So before I do that, let's explain a little bit about what comes in each edition of Toad. So on the left hand side, in the dark blue box, as you can see, the different editions-- there are five. Actually there are seven, because the DBA edition comes in instance, RAC and Exadata form.
And you can see, in the center boxes, the main components that come with each of those additions. So Professional Edition, for example, includes Code Analysis, which is the static code review, as well as data generation. Xpert Edition adds in the SQL optimizer for tuning SQL statements. Developer Edition includes other products like Benchmark Factory for scalability testing and Code Tester for unit testing. And the DBA addition includes Spotlight on Oracle.
On the final row of boxes, you can also see what the main needs are that we meet in each of those. So if you not really care about the feature names, but you're more interested in, so what does this actually do for me, you can see a brief explanation of what those things are, as well.
So the main topics I want to talk about in this session are Team Coding-- which are a collaborative source control feature-- Code Tester-- which is our PL/SQL unit testing tool-- Compare Schema, Compare Data. Compare Data is new. Compare Schemas and Compare Data actually have significant workflow and usability improvements. Then I want to talk about Toad World integration and how you can access Toad World from Toad. And then I want to talk about what support we have for cloud databases as well as what support we have for DevOps.
So I'm going to go straight into some brief demos which will show you a bit more detail about each of these features. So the first thing I want to do is bring Toad across so that you can see it.
So the first thing I should mention is that we've recently added support for SDI mode as well as MDI mode. Now, all that basically means is that Toad has been historically an MDI application, which means that all the windows that you open have to be inside the boundary of the application. But with SDI mode, then you're able to have windows free floating.
So if I go into the Toad options, into General, you can see there's a new option here where I can switch from MDI mode, which is the default mode for Toad, and SDI mode. So if I'm using two screens, it means that I can free float windows and move them between both monitors, which is very convenient. So when you select that option and click OK, you have to restart Toad in order for that to happen.
But one way I can show this working straight away is to simply take a window by right clicking it-- so if I take this schema browser window button and just right click it, I can change its style from an MDI window to an SDI window. So it's now a pop out window. And if I drag it back into the screen, you can see that this window can now move outside of the frame of the application.
If I right click it back again and say Pop-in Window, it reverts back to an MDI mode. So that can be very convenient if you're looking to grab some more real estate and you're using two monitors, by moving windows between the two.
So the next I want to talk about is Team Coding. Now, Team Coding-- there've been a number of enhancements over the last 12 or so months. I just want to illustrate one of those straight away, and that is conflict resolution. So we know that-- we'd like to think everyone's using Toad, of course, and using Team Coding to work with source control. But inevitably, there may be cases where somebody who's not using Toad or not using Team Coding may access an object like a stored procedure and do some work on it unbeknownst to you.
So watch what happens now as I come into my editor and try to change this stored procedure and compile it. So I've made a couple of changes to the stored procedure. I'm going to go ahead and compile it. But then I get this warning message appears that says, "The object source in the database has changed since this object was last opened," which means that someone else has changed this before I've had a chance to make the change compile.
Now, what would normally happen is that, since I compile, it would overwrite the changes made by somebody else. And you may not want that. So what's going to happen now is, if I press OK, is I'm going to get a merge dialogue. So I can view my changes in conjunction with someone else's changes and see whether, in fact, I want to merge them both.
So I click OK. Here's my merge dialogue window. And you can see there's three panels. On the left hand side are my changes. On the right hand side are someone else's changes. You can see the data type different there on the x grantable parameter. And then the bottom shows you the actual merge source.
So if I was to go ahead and merge these, this is what it would look like. And it may be quite complex. This is a really simple change. There could be code that's been added. There could be code that's been removed. And so you get to review them and decide whether you ought to merge them. If you do want to merge them, you push this button, which is Save Merge Source. That will save the merged content into a file, and then you check that file into Source Control.
Alternatively, if you don't want to merge the content, you can simply cancel out of this and go ahead and compile the change that you made into the database and effectively overwrite anything that someone else made, because you've inspected the differences. You decided that other change was not a valid change. And now you're compiling your changes back into the database.
One of the other things that you can do as well is alter the way in which DDL is generated in Team Coding. So when you're working with Team Coding, what you're doing is, you're working on the database objects themselves and letting Team Coding take care of updating the files in the version control system. Team Coding keeps the database changes that you make as a developer and the corresponding [INAUDIBLE] source control in sync. And you saw an example there of a conflict resolution.
One of the things that we've added recently is the ability to define how the DDL is written out when you make a change through Team Coding. For example, if you're making a change to a table, you might want to make sure that the table constraints are defined in a particular way and are associated with the object change that you made in Team Coding.
Previously, you weren't able to do that. You were making a change to a table completely independent of any related objects. And that may have caused issues down the road. So that's quite a convenient way to enable you to come into here and actually define the way in which constraints or any other associated, related objects are attached to that change that you made.
One of the things you can do as well is, you can make sure that the chain script-- the DDL script-- you generate is compatible with the target database that you're deploying the changes onto. So for example, if you want to make sure that the changes that you make are going to work on a later version of Oracle-- or even an earlier version of Oracle-- you can define the compatibility level right here. And it will make sure that the script will work on that target database.
One of the other things that we've added as well, because we frequently get questions about how to set up Team Coding and how to configure it to use this particular version control system-- and there are a lot of information on our Toad World community. So what we've done is, the developers have actually added a Getting Started guide that can be accessed straight from the Team Coding configuration toolbar.
And this is a brilliant document, because it summarizes all the different things that you can do in Team Coding to get it set up, define projects, to map those projects to your version control projects, to configure Team Coding to work with a number of different version control providers that we have out there. And it's just a great document. So I urge you to read that document.
One final thing I should say on Team Coding as well is that we now support the ability to do pushes and pulls if you're using a distributed version control system such as Git or Mercurial. Normally, with any IDE, you have to go outside the IDE to make your pulls and pushes, because you're pulling and pushing from a distributed version control repository-- unlike Subversion, which uses a centralized repository.
So what we've done is, we've added the pull and push capabilities inside of Team Coding itself. Now, if I was using Git, then I would have the ability to do that right from here, from a right-click. But I'm using Subversions. That option's not open to me. But this is where you would see it. You would also see it in the VCS tab. So if I wanted to come into the actual file system and do the check out from here, again, I could right click it. And I would see the option there, too.
So that's a quick look at the enhancements that have been made in Team Coding. One other thing, as well, with Team Coding that we added last year was the ability to include unit tests that you create in Team Coding.
The reason for this is-- and this is particularly important-- as you move to tools DevOps and you want to have this notion of a build where you have database objects in the build, and you were running a set of unit tests in that build, you want to make sure that the unit tests that you have belong to the code changes that you're implementing in that build. So unit tests and code together.
And previously, we weren't able to do that, because we were only able to work with database objects. Now, that's changed. And so this is a code test of Oracle. And I've got a test open here. And so what I'm able to do is to right click this test and check it out of Source Control. Because I have all of my unit tests saved in my Subversion repository. And there it is.
So it's basically behaving exactly the same way as Team Coding and Toad would behave if you checked out a stored procedure or a table. Now I can make a change to this test, and when I'm finished, I can check it back into Source Control so that the test cases and the object that I created the test for are in synchronicity.
So the next thing I want to talk about is changes to some of the compare windows. We've made a lot of changes over the last 12 or so months to Schema Compare and Database Compare so that they look more compatible. They're easy to use. It's a much cleaner set of windows, because the Schema Compare window had a lot of-- well, it still does have a lot of options, but we've consolidated it to make it much easier to use if this is a feature that you're new to.
So the Compare Schemas, first of all-- so if I go to the database menu, select Compare-- which is where all the compare features are-- I can see I've got Compare Data, which is the traditional compare-- one pair of tables. And then I have Compare Multiple Tables, which is the ability to compare and sync data across multiple pairs of tables-- in fact, the whole schema, if necessary; Compare Databases, which is the same; Compare Schemas-- but Compare Schemas now is Compare Single Schemas-- so one-to-one, one-to-many, but also many-to-many. So this is now one feature which supports all of those different operations.
So the first step is to select the source database. And I can either use a live database connection or a pre-stored Toad snapshot file. I select the schema that I want to compare. And you'll see from the dropdown list that there is this new category, Special. So this is multiple schemas. So what this will allow me to do is just flip the source screen so I can select multiple schemas to compare. I would select a list of different schemas. And then on my targets, I would select a list of schemas that match those source schemas. And I'd be able to compare the objects in both pairs of schemas. So that's new.
Compare Data-- so this is my Compare Data screen. It has the same look and feel. It's much simpler to view. I can flip the direction, switch Source and Target around real quick. I have an Options tab. So I can define what options I want when I compare the data. And then here, what I'm doing is comparing two tables in the same schema, one called EMPLOYEE and one called EMPLOYEEX. I can put a where clause in and then go ahead and compare.
The other feature that you'll see, consistent with all the compare windows, is a Back, but also a Start button. So you might want to go right back to the beginning again rather than pushing Back button multiple times. And you'll see a bread crumbs item below the Compare Data-- or the Compare Schema or Compare Database, they're all the same-- that shows your way around.
So if I go ahead and click the Next button, you can see Select Columns is the next item. So now I select the columns I want to compare and then go ahead and push Compare. So this is now compare the data. I can see that the row counts are different. I've got eight extra rows on the source versus the target. And I can go ahead and sync the data. So I can sync the data, I can send the script to an editor, or save script to a file.
So the main take away from this is that Compare Schemas, Compare Databases, Compare Data all looks the same. It's the same look and feel. It's much easier now, if you're new to Toad, using either of those features.
And then, finally, in this demo, I just want to show you the Toad World toolbar. As you see, I can go straight to Toad World. I can ask a question on the user forums. I can browse through the user of forums, see if there's a topic that I'm interested in joining. And finally, there's a Start Training. Now, the Start Training is going to launch our free, web-based training that's hosted on our Toad World community web site.
So if I click that button, it'll go straight to Toad World, open up the appropriate page, and provide me access to all of the training courses that we have available for Toad and some other products. So if you're new to Toad, you'll see there's a Toad for Oracle fundamentals training course. So this is all self-paced, web-based training that has simulations that make you look as though you're inside of Toad. But the difference is, you've got an instructor that's going and helping you step through the various features one by one.
So that's great, actually, as a refresher course, as well. So even if you're an experienced Toad user, there's probably going to be some things you might learn in here, as well. And then if you want to be more advanced-- so if you're a developer-- there's some training here on using Unit Testing and Debugging and Code Review as well as Source Control. And they've got DBA courses that cover change management, database maintenance, and performance management.
So that's a great variety of training courses to brush up on your Toad knowledge if you haven't seen these before.
So let's go back to the PowerPoint. So a couple of other items I want to mention in this session, as well, is cloud database support. And I mention this because sometimes we get asked by customers, "I'm moving my database to the cloud. Can Toad help me?" Absolutely.
This is something that we included last year and we continue to enhance. So if you're using Oracle Database either in the Oracle Database Cloud Service or in Amazon, then you can work with those databases using Toad just fine. If you're using Oracle Database in the Oracle Cloud Service, there are some additional things you can do that will enable you to have much more flexibility in managing both on-prem and cloud-based databases-- particularly if you're using Oracle 12c multitenant databases where you can actually create a database instance in the cloud.
You can create or clone a PDB on-premise and move that PDB into that database in the cloud. You can connect to Oracle Database in the cloud. You can connect to databases in any of these cloud services, actually. You can copy schemas to the Oracle Cloud. You can move data to the Oracle Cloud.
This screenshot shows you, actually, the FTP window where I've created some files that represent my on-prem PDB, and I'm moving those over to my remote system, which is my Oracle Database in the Oracle Database Cloud Service.
So just be aware that you can use Toad with Oracle Database in the cloud. And if you want more information on doing that and doing some of these operations I mentioned here, if go out to the Toad World community, look up Toad and Oracle Cloud, you'll find a couple of articles there from experts about how you actually use Toad to work with databases in the cloud.
And finally, DevOps. So last year, we launched Toad DevOps Toolkit, which is a brand new product which leverages some of the features in Toad for Oracle-- for example, Code Review, Unit Testing, Execute Scripts, and things like that-- but allows you to bring them into a DevOps workflow.
So if you look at this graphic, you can see that on the left hand side, we've got the Toad developers or people using Toad checking their objects into Source Control, like you saw before, using Team Coding. Once those objects have been checked into Source Control, then you're ready to do a build. Your build automation server may be Jenkins. It may be Bamboo. It may be Visual Studio. It doesn't really matter.
And then what you're able to do during that build processes is call out to Toad DevOps Toolkit that you want to run a bunch of unit tests or perform a code review or compare the schema objects on the source versus the target database that you want to deploy to. So you can do any of those things or all of those things.
And Toad DevOps Toolkit really is a complement to Toad for Oracle Developer Edition, which includes the unit testing and some of the other features. So it's a great way to bring database operations, development, and deployment operations into your DevOps pipeline.
So that was launched at the end of last year. And then this year, we've released a new version of Toad DevOps Toolkit which comes with a Jenkins plugin. So if your automation server of choice is Jenkins, we've simplified the way that you use Toad DevOps Toolkit by actually bringing in some of the key things like static code reviews and unit testing directly inside of the build console itself.
So you'll see in the screenshot, I'm in Jenkins. I'm doing a build. I've got a build set that says Perform Code Analysis with Toad DevOps Toolkit. I fill in the information I want. But when I initiate the build, it's going to automatic call Toad DevOps Toolkit and perform the necessary operations on the database objects.
Just to close with some useful resources that I think you'll find helpful-- on the Quest website, quest.com-- if you go to quest.com/product/toad-for-oracle, there are plenty of on-demand webcasts. You can see a couple of examples on the right hand side there that cover both working with Oracle databases in the cloud as well as how to leverage Toad DevOps Toolkit. Both of these are collaboration webcasts. So you'll find these very helpful.
Toad World community at toadworld.com-- if you go to community.toadworld.com, you'll see some features videos on Toad for Oracle as well as the ability to compare different features across different editions. If you are evaluating Toad, there are some evaluation resources, including a brand new return-on-investment calculator.
And then finally, our support web site, which is support.quest.com, has a knowledge base, lots of video tutorials, and technical documentation.
So thank you for listening. I hope you found that useful. And enjoy.