各位大虾办帮帮忙啊,不然要挂了-_-还有一个问题是关于临时表的,是不是oracle里的临时表会在库里一直保持结构,在一个会话或者事务完成后,创建的临时表只是被截断了,但是表结构还是存在的阿?如果我想临时表用完了连同表结构也一同自动删掉,这样做可不可以阿?大家帮忙啊,刚注册分不多,不敢多散,怕以后又问题了没法办,大家帮忙,万分感谢!!!!

解决方案 »

  1.   

    在Oracle8i中,可以创建以下两种临时表: 
    1。会话特有的临时表 
    CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification> ) 
    ON COMMIT PRESERVE ROWS; 2。事务特有的临时表 
    CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification> ) 
    ON COMMIT DELETE ROWS; 
    CREATE GLOBAL TEMPORARY TABLE MyTempTable 
    所建的临时表虽然是存在的,但是你试一下insert 一条记录然后用别的连接登上去select,记录是空的,明白了吧。
    下面两句话再贴一下: 
    --ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行) 
    --ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。
      

  2.   

    在db2中通过建立database link的方式来调用db1中的sp,可行
      

  3.   

    楼上的兄台那应该如何写sql阿,我写的是
    execute schema.sp_name()@dbLinkName
    可是不行啊,能给个实际的例子吗?谢谢了!!
      

  4.   

    create synonym sp_name for schema.sp_name@dblinkname;
    execute sp_name()
      

  5.   

    sql>exec schema.sp_name@dblinkname   --当然要相应权限,要获得schema模式下的权限
      

  6.   

    可以在db2中通过建立database link的方式来调用db1中的sp
    也可以通过创建同义词来调用
      

  7.   

    to bechham:可是我这样用的时候他报语法错误阿,应该怎么解决 阿,谢谢