代码之家  ›  专栏  ›  技术社区  ›  FrustratedWithFormsDesigner

基于变量的Oracle sqlplus设置环境变量

  •  4
  • FrustratedWithFormsDesigner  · 技术社区  · 14 年前

    我想设置环境变量 long 基于我尝试检索的XML数据的大小。这个想法是这样的:

    var XML_DATA_SIZE number;
    
    SELECT TRIM(LENGTH(xmltype.getClobVal(xml_data))) 
      INTO :XML_data_size 
      FROM xml_tab 
     WHERE key = '1234';
    
    print XML_DATA_SIZE
    set long XML_DATA_SIZE
    set pagesize 0
    set line 2000
    
    set termout off
    spool XMLDATA.xml
    select xml_data from xml_tab where key = '1234';
    spool off
    

    这会产生一个错误: SP2-0268: long option not a valid number ,XML文件只包含80个字符。

    1 回复  |  直到 14 年前
        1
  •  4
  •   bhangm    14 年前

    而不是

    set long XML_DATA_SIZE
    

    尝试

    set long &XML_DATA_SIZE
    

    [编辑]:

    不好意思,我摆弄了一些其他的选择,把我的考试搞砸了。 试试这个:

    define xml_data_size=0
    column xml_data_size new_value xml_data_size noprint
    
    select trim(length(xmltype.getClobVal(xml_data))) xml_data_size from xml_tab where key = '1234';
    
    set long &xml_data_size
    sho long
    set pagesize 0
    ...
    ...