我想让oracle执行特定任务时,调用自己写的其他非sql语言。比如.exe或者批处理等,是否可以完成?
如果不能有什么方法吗?

解决方案 »

  1.   


    网上找了一下,没有很明确的用法,仿佛都是在sql操作。
    我只想有一个方法调用我自己写的函数,给该函数传递一个iD号作为参数。
      

  2.   


    网上找了一下,没有很明确的用法,仿佛都是在sql操作。
    我只想有一个方法调用我自己写的函数,给该函数传递一个iD号作为参数。
      

  3.   


    网上找了一下,没有很明确的用法,仿佛都是在sql操作。
    我只想有一个方法调用我自己写的函数,给该函数传递一个iD号作为参数。
      

  4.   

    可以试试用一个系统的脚本文件来解决把你的oracle需要执行的任务写到一个sql脚本里,然后通过sqlplus "username/password@tnsname" @sql脚本的路径。这样的方式可以在shell脚本里直接执行sqlplus里的任务了。然后把你这类需要的exe bat/.sh掉用都写道一个shell脚本里,把这个脚本添加到系统的计划任务或者是linux的corn里就可以了。
      

  5.   


    说的不错,shell脚本好了!
      

  6.   


    说的不错,shell脚本好了!
      

  7.   

    楼主的意思是?:你写了一个Oracle的函数A,需要一个ID作为输入参数;
    又用非Oracle语言写了一个程序B(或批处理脚本),能输出一个ID;
    想在执行A的时候调用B,从而从B的执行结果中取得ID,返回给A,最后完成任务.
      

  8.   


    我的思路是这样,有一个报表系统,自己做了应用端的数据缓存,之前是以缓存的时间来确定是否缓存失效的。但是这个是一个报表,用户经常生成报表看一下,然后修改了再生成,而我不可能把缓存时间修改太小,也不能让用户等待缓存失效。
    考虑到系统的modify操作很较少,就想每次modify之后让数据库通知缓存系统进行更新。
    不知道这个思路是否可行,有其他更好的方法吗?
      

  9.   

    是报表,数据量很大的,而且在特定时间内使用的会比较密集,必须缓存,不能直接sql。
    其他的一些缓存方案仿佛多以缓存时间来进行刷新,而且不想引入大块头。
      

  10.   

    查询用了绑定变量吧?把db_cache_size设大些,或者把一些表cache在内存中。
    oracle会帮你缓存的.
      

  11.   

    我的思路是这样,有一个报表系统,自己做了应用端的数据缓存,之前是以缓存的时间来确定是否缓存失效的。但是这个是一个报表,用户经常生成报表看一下,然后修改了再生成,而我不可能把缓存时间修改太小,也不能让用户等待缓存失效。
    考虑到系统的modify操作很较少,就想每次modify之后让数据库通知缓存系统进行更新。
    不知道这个思路是否可行,有其他更好的方法吗?
    ----------------------------------------------------------
    请问下:
    1)用户生成报表结果数据很大?还是报表所统计的表数据量很大?
    2)基于问题1),应用端缓存的数据是报表的结果数据,还是要统计前的数据?
    3)基于问题2)如果缓存的是统计前的数据,那么楼主是在应用端实现数据的统计吗?
    4)“用户经常生成报表看一下,然后修改了再生成”,是说用户修改生成后的报表结果数据,还是修改此报表所统计的数据?
    5)“以缓存的时间来确定是否缓存失效的”,是说应用端设置个计时器,超时就认为缓存过期?