following up on what Mike said…
The icon will be grey (I’m in the UK - that’s how we spell it, correctly!!!) [;)] whenever you have executed a SQL statement or a PL/SQL statement in the editor, and no results grid is produced. Something like “CREATE TABLE …;” or “EXEC somePackage.someProcedure();”.
The icon will be red when you have executed a “SELECT …;” but have not included the ROWID of the table in the select list. “SELECT * FROM MYTABLE;” for example. This makes the grid non editable. What data you see is what you are going to have to change, if required, in some other way.
The icon turns green when you do select the ROWID, “SELECT ROWID, T.* FROM MYTABLE T;”. Now you can wander around the grid, clicking in cells, editing the contents and so on. When done, you click the POST button, and then COMMIT or ROLLBACK as necessary. They are on buttons too.
You double click a TEXTual cell to open a separate editor window, make changes and click the green tick (check?) button to post the edit. The editor will remain open to allow further changes. Close it and commit by clicking the first button above the grid - a red down arrow pointing at a “database”. Rollback is the button next to it, blue arrow pointing up away from the “database”.
You single-click a NUMERIC cell, once to select it, once to start editing, and if you want, click the down arrow that appears to open a calculator utility to create the new value for the column. Once done, tick the green tick (check) above the grid to post the edit, and commit or rollback as before.
The buttons above an editable grid are:
Commit, Rollback, Pivot Grid, Export Grid, First row, Previous row, Next row, Last Row, Add a row, delete current row, Edit current row, Post edit, Cancel Edit, Cancel data fetch and Calculate with selected cells - like a spreadsheet, you can add, average, count, min or max the cells you have selected. The results are written to the status line.
Other options such as duplicating the current row are available on the right-click menu.
Oh, by the way, you may notice that when you do select the ROWID, you never see it in the grid. Toad uses the ROWID being present to put the grid into read-write mode. The ROWID is not shown. If you need to actually see the ROWID for a table, you have to alias it, as in “SELECT ROWID as MYROWID, t.* FROM MYTABLE T;” this will display the ROWID column and will put the grid into read-write mode.
DO NOT EDIT THE ROWID COLUMN! The grid allows this, but you may/will end up corrupting something if you do change it.