您现在的位置是:首页 >

SQL数据库 如何在SQL *Plus中把数据库栏以变量的形式保存

火烧 2023-03-15 18:08:15 1042
如何在SQL *Plu 中把数据库栏以变量的形式保存   Oracle SQL *Plu 有一个非常有用的子参数( u arameter) 它从属于一个叫着NEW_VALUE的数据栏参数 NEW_VA

如何在SQL *Plus中把数据库栏以变量的形式保存  

SQL数据库 如何在SQL *Plus中把数据库栏以变量的形式保存
  Oracle SQL *Plus有一个非常有用的子参数(subparameter) 它从属于一个叫着NEW_VALUE的数据栏参数 NEW_VALUE指示允许你以SQL *Plus脚本中的变量保存从Oracle表格查询而得到的数据     用过使用NEW_VALUE参数 你可以像真正的编程语言那样使用SQL *Plus脚本来保存和寻址程序变量 如同PL/SQL那样        保存SQL *Plus变量并在其中填充Oracle数据是非常重要的特性 由于它减少了对数据库访问 所以它提高了SQL *Plus脚本的有效性     collog_mode_valnew_valuelog_modenoprint    select   value log_mode  from   v$parameter  where   name = archive_log_mode ;    select   The current archivelog mode is || &&log_mode from dual;    column today new_value today;    select   to_char(sysdate mm/dd/yyyy hh :mi ) today  from   dual;     现在 我们理解了SQL *Plus变量是如何保存的了 让我们看看一个真实的例子 下面的例子来自STATSPACK报告 改报告描述了表格增长与数据库块大小的函数关系 由于DB_BLOCK_SIZE在整个数据库中是一个常量 我们使用NEW_VALUE参数来捕获改数值一次 并把它作为输出的一部分重新显示出来     在这个例子中 我们定义了一个称之为&blksz的变量并在主查询中用它来判断表格中的剩余空间 下面的例子向我们演示了如何进行这个计算 知道块大小可以让我们很快估计出表格中的剩余空间容量      (num_rows*avg_row_len)   *    (blocks*&blksz)     这是整个查询     column c heading TABLE NAME format a ;  column c heading EXTS format ;  column c heading FL format ;  column c heading # OF ROWS format ;  column c heading #_rows*row_len format ;  column c heading SPACE ALLOCATED format ;  column c heading PCT USED format ;    column db_block_sizenew_valueblksznoprint    select value db_block_size from v$parameter where name = db_block_size ;    set pages ;  set lines ;    spool tab_rpt lst    select   table_name c    b extents c    b freelists c    num_rows c    num_rows*avg_row_len c    blocks*&blksz c    ((num_rows*avg_row_len)/(blocks*&blksz))* c   from   perfstat stats$tab_stats a    dba_segments b  where   b segment_name = a table_name  and   to_char(snap_time yyyy mm dd ) =   (select max(to_char(snap_time yyyy mm dd )) from perfstat stats$tab_stats)  and   avg_row_len >   order by c desc  ;        lishixinzhi/Article/program/Oracle/201311/17435  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码