求助:如何截获客户端应用程序发出的sql命令语句
是这样,本来是一个数据库,现在把其中一部份数据放到了另外一个orcal数据库中,但是前台的客户端程序一点都不能动,这样一来,用客户端去操作移走的数据的时候,就会提示数据不存在,有什么好的办法,在不动客户端的情况下,还能对移走的数据进行操作。不知道orcal有没有这样的功能,就是可以截获客户端发出的sql语句命令,这样就能进行判断是在哪个数据库里了,请大家帮帮忙! 问题点数:0、回复次数:8Top
1 楼cronuz(cronus)回复于 2005-04-01 16:21:13 得分 0
用建「DATABASE LINK」方式把另外一个orcal数据库連接起来。
--建 DATABASE LINK
CREATE PUBLIC DATABASE LINK linkname CONNECT TO username IDENTIFIED BY password USING 'linkoracle'
--取
SELECT * FROM tablename@linkname
Top
2 楼chanet(牧师)回复于 2005-04-01 17:48:01 得分 0
select * from v$sql;Top
3 楼skystar99047(天星)回复于 2005-04-01 17:49:40 得分 0
在这台数据库中用dblink连接另外一台数据库
SQL> create public database link dblinkname connect to username identified by password using 'sid';
然后创建同义词
比如你的表table_name 已经移到了另外一个数据库中
SQL> create public synonym table_name for table_name@dblinkname;
然后就可以像操作本台机器上的表一样去操作这个同义词指向的表,如
SQL> select * from table_name;
SQL> delete from table_name;
这样你的程序就不用改变Top
4 楼gzhughie(hughie)回复于 2005-04-01 19:18:46 得分 0
建立数据库的集群,不就什么多解决了,连程序改动都少。Top
5 楼hu_jb(从不决不永不)回复于 2005-04-01 21:15:20 得分 0
skystar99047(天星):不是表的转移,是数据的转移,新建的数据库和原来的数据库里面的表一模一样的,就是把原来的数据库里的一些历史数据转移到新的数据库里面去了,但是客户端的应用程序是封装好的exe,没有原码,所以一点都改动不了,这样的情况,用您说的这样方法能够实现么?可否再具体的讲一下解决方案,谢谢了!Top
6 楼nebulaly(极高明而道中庸)回复于 2005-04-02 18:48:22 得分 0
按照skystar99047(天星)的方法建DBLINK
把表名改掉,建立一个和表名同名的视图,数据来源于本地表和远程表的UNIONTop
7 楼skystar99047(天星)回复于 2005-04-02 19:09:38 得分 0
原来你是这样的情况呀
如果你的应用程序都是通过存储过程访问数据库的话,只修改存储过程就可以了,不过大多都是直接传入SQL语句处理的,所以不太好办。
我想你只是查询用到另一个数据库的历史数据,插入更新都是这台数据库上吧。
有这样一个方案你可以考虑:
1.比如原来有表A,现在分在两个数据库中,用上面我给你的方法将另一个数据库中的表关键到这台数据库,假如对象名(同义词)为B(另外一台数据库的表A)
2.将现在的表A重命名为C
3.然后新建一个视图命名为A,该视图数据来源于B和C,这样你的SQL语句查询就可以通过该视图进行,比如原来select * from A查询的是表数据,而现在是通过视图中操作;对于插入和更新,因为操作的是视图,所以需要在该视图上建立替代触发器(需要你自己查资料如何去写,我这里就不给你细写了),以便对表数据进行插入更新操作,至于是插入更新到表C还是B,需要在触发器中实现。
通过此种方式,我想应该可以满足你的需求。Top
8 楼lijietz(臭流氓)回复于 2005-04-02 22:48:39 得分 0
alter system set sql_trace=true;
在到user_dump_dest下寻找trace文件,可以用tkprof记录用户的所有sql。Top
相关问题
- 有没有可以截获应用程序发出的SQL查询语句的工具?
- 高分,如何监视应用程序向oracle 8i发送的sql语句?
- 截取应用程序向Oracle数据库发送的SQL语句!
- 用ClientDataSet开发单层文件型数据库应用程序时如何使用SQL语句?
- 在三层数据库程序中,怎么才能让ClientDataSet传送SQL语句给应用程序服务器呢?
- 高分讨论,不够再加:在应用程序中插入数据用insert sql语句还是用存储过程效率高?
- ***********请问如何取得在客户端对表1所作操作的sql 语句和应用程序名、ip地址??*************
- c#应用程序中连接数据库的语句怎么写?
- 求救!如何把SQL命令从前端应用程序传给应用程序服务器
- 请问如何点击按钮重启一个vb的应用程序。或是在vb如何用语句打开一个.exe应用程序?




