5.A.1.7.4.1. Schemat i nazwa tabeli Oracle
Poniższy kod można umieścić w konfiguracji skyptów akcji by podpiąć go do listy tabel wtyczki obsługi bazy danych Oracle.
Przykład oprócz sposobu użycia samego BeanShell pokazuje w jaki sposób dostać się do danych zawartych na liście wyników.
Tytuł akcji: Jaka to tabela (przykład BeanShell)
Klucz akcji: oracle-tables-actions
import pl.mpak.orbada.gui.comps.table.ViewTable; import pl.mpak.sky.gui.mr.ModalResult; import pl.mpak.sky.gui.swing.MessageBox; import pl.mpak.usedb.util.SQLUtil; if (component instanceof ViewTable) { ViewTable vt = (ViewTable)component; if (vt.getSelectedRow() >= 0) { try { vt.getQuery().getRecord(vt.getSelectedRow()); String schemaName = vt.getQuery().fieldByName("schema_name").getString(); String tableName = vt.getQuery().fieldByName("table_name").getString(); MessageBox.show(SQLUtil.createSqlName(schemaName, tableName)); } catch (Exception ex) { MessageBox.show("Błąd", ex.getMessage(), ModalResult.OK); } } }
5.A.1.7.4.2. Szybkie kopiowanie DLL tabeli
Poniższy kod można umieścić w konfiguracji skyptów akcji by podpiąć go do listy tabel wtyczki obsługi bazy danych Oracle.
Przykład pokazuje w jaki sposób można użyć obiektu SourceCreator
z wtyczki Oracle oraz skopiować wynik do schowka systemu operacyjnego.
Action title: Szybkie kopiowanie DDL (przykład BeanShell)
Action key: oracle-tables-actions
import pl.mpak.orbada.gui.comps.table.ViewTable; import pl.mpak.sky.gui.mr.ModalResult; import pl.mpak.sky.gui.swing.MessageBox; import pl.mpak.orbada.oracle.util.SourceCreator; import pl.mpak.util.TextTransfer; if (component instanceof ViewTable) { ViewTable vt = (ViewTable)component; if (vt.getSelectedRow() >= 0) { try { vt.getQuery().getRecord(vt.getSelectedRow()); new TextTransfer().setClipboardContents( new SourceCreator(database, null).getSource( vt.getQuery().fieldByName("schema_name").getString(), "TABLE", vt.getQuery().fieldByName("table_name").getString())); } catch (Exception ex) { MessageBox.show("Problem", ex.getMessage(), ModalResult.OK); } } }
5.A.1.7.4.3. Zabijanie sesji Oracle bez prawa DBA
Poniższy kod można umieścić w konfiguracji skyptów akcji by podpiąć go do listy sesji bazy danych Oracle.
Przykład pokazuje jak wywołać procedurę PL/SQL aby umożliwić użytkownikom bazy danych Oracle zabijać swoje sesje bez uprawnień DBA.
Action title: Zabicie sesji RAC
Action key: oracle-sessions-actions
import pl.mpak.orbada.gui.comps.table.ViewTable; import pl.mpak.sky.gui.mr.ModalResult; import pl.mpak.sky.gui.swing.MessageBox; import pl.mpak.usedb.util.SQLUtil; if (component instanceof ViewTable) { ViewTable vt = (ViewTable)component; if (vt.getSelectedRow() >= 0) { try { vt.getQuery().getRecord(vt.getSelectedRow()); String sid = vt.getQuery().fieldByName("sid").getString(); String serial = vt.getQuery().fieldByName("serial#").getString(); String inst = vt.getQuery().fieldByName("inst_id").getString(); database.createCommand("begin kskill.kill_session("+sid+","+serial +","+inst+"); end;", true); } catch (Exception ex) { MessageBox.show("Błąd", ex.getMessage(), ModalResult.OK); } } }