1. 动态sql语句必须使用绑定变量,防止sql多版本的出现,影响效率. sql多版本是什么意思?。2.
SQL>set heading off 
SQL>set echo off 
SQL>set feedback off 
SQL>set pages 10000 
........
   里面的heading .echo off .feedback .pages  是什么意思?   此外还有些,像linesize. clo<列>for a<size>等等,一些窗口显示输出变量的用法。
   望用过的高手解释下用法,能提供例子最好!

解决方案 »

  1.   

    逻辑上相同的SQL,但是在写法上不同(字符级一致,对象相同等),造成SQL多版本,执行计划不能共享。
      

  2.   

    set heading off 让标题不显示SQL> set heading on;
    SQL> select ename from emp where empno=7369;ENAME
    ----------
    SMITHSQL> set heading off;
    SQL> select ename from emp where empno=7369;SMITH
      

  3.   

    1. 你说的,是指:select * from v$sqlarea t where t.VERSION_COUNT > 1;
    通过上面的sql_id,关联到v$sql查询:
    select * from v$sql t where t.sql_id = '?';v$sqlarea存的是parent_cursor, v$sql则是child_cursor;
      

  4.   

    SQL>set heading off --标题不显示
    SQL>set echo off  --这个不是很清楚
    SQL>set feedback off --  返回查询中返回的记录多少条,跟下面的显示多少记录行数。
    SQL>set pages 10000 --每页10000条记录
    ........linesize--行的尺寸,就是每行可以有多少列
    clo<列>for a<size>--列的宽度
      

  5.   

    SQL>set heading off --标题不显示,一般设为ON,但在其他软年中需要引用查询结果的时候,可以设为OFF,方便其他程序读取所需字段;
    SQL>set echo off --结果不包含命令,默认的也是OFF,比如在执行脚本的时候,如果状态为ON,结果显示将包含(脚本)命令和查询结果;
    SQL>set feedback off -- 返回查询中返回的记录多少条,跟下面的显示多少记录行数,一般设为ON。
    SQL>set pages 10000 --每页10000条记录,查询结果中,你会看到记录间会出现横条,那就是分页符,数字越大,分页符的跨度就越大;
    SQL>set lines 100 --每行字符长度。查询结果中的每条记录可能会出现跨行情况,不便于阅读,可改大数字为100,一般情况100够了;这些命令见多了就会习惯的,不过都得输入试试。感性的认识有利于记忆。另外,很多特殊的表名,也需要记忆的,比如一些查询索引,约束的表,我也是初学,现在看着头疼呢,不过都记下来了,下次要查的时候,看笔记应该比翻书来得快。
      

  6.   

    我不知道SQL多版本的含义,但是2的仁兄说的,我可以补充点~
    先假定2楼说的就是SQL多版本·那么我举例来说明下
    如下:
    select a.col1,a.col2 from a
    Select a.COL1,a.COL2 from a
    两个SQL执行结果一样,但是Oracle需要解析2次,原因就在于大小问题造成Oracle认为这是两个不同的SQL