到底是什么人在用 Oracle 数据库啊,一条 sql 里面写个长点的字符串都不支持(>32767) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xiangyuecn
V2EX    数据库

到底是什么人在用 Oracle 数据库啊,一条 sql 里面写个长点的字符串都不支持(>32767)

  •  
  •   xiangyuecn 2023-07-27 11:19:27 +08:00 1800 次点击
    这是一个创建于 872 天前的主题,其中的信息可能已经有所发展或是发生改变。

    没有装 Oracle (这玩意太大了),用的在线学习使用: https://livesql.oracle.com/

    吐了,如果是要编写.sql 文件,我要怎么把超长文本丢到这个 sql 文件里面?要求不高 1MB 以内的文本就 ok

    测试 clob 本身是能存储长字符串( clob 最大 4GB 容量),这条语句能正常执行:

    declare txt clob:=''; i int:=0; begin while i<50*1000 loop txt:=txt||'a'; i:=i+1; end loop; dbms_output.put_line('txt: '||dbms_lob.getlength(txt)); end; 

    如果一条 sql 里面包含了 32k 以上字符串(指:sql 里所有字符串总长度),sql 就执行不了了:

    declare txt clob:=''; begin txt:=txt||'...'; -- ... 是手写长度为 1000 的字符串 txt:=txt||'...'; -- 这里省略了手写 50 个 txt:=txt||'...'; -- 测试最多能放 32 行,再多一行就不行了 dbms_output.put_line('txt: '||dbms_lob.getlength(txt)); end; 

    淦。目前使用到的唯一存在这种恶心问题的数据库。官方 limit 文档: https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpls/plsql-program-limits.html

    5 条回复    2023-08-05 22:50:28 +08:00
    xshell
        1
    xshell  
       2023-07-27 13:59:00 +08:00
    oracle 稳如老狗。
    很多银行保险运营商都在用,包括一些大的公司财务数据库。
    hyperbin
        2
    hyperbin  
       2023-08-03 14:17:38 +08:00 via Android
    因为默认 varhcar ,to_clob()后再拼接就行了
    xiangyuecn
        3
    xiangyuecn  
    OP
       2023-08-03 19:21:44 +08:00
    @hyperbin 没用的,clob 类型的变量上使用 to_clob 和 | 拼接没有区别,原因是手写字符串超过 32k 这条 sql 语句都是没法解析的
    hyperbin
        4
    hyperbin  
       2023-08-04 08:18:26 +08:00 via Android
    @xiangyuecn 那就是设计问题了,Oracle 和你这边的设计都有问题
    xiangyuecn
        5
    xiangyuecn  
    OP
       2023-08-05 22:50:28 +08:00
    @hyperbin 今天电脑上特意装了 Oracle 测试了一下,没有这个问题了,用 txt:=txt||'...'; 这种就行
    sql developer 里面,只要''里面手写的单个文本不要超过 32767 字节就 ok 了,无限拼接
    sqlplus 里面,只要''里面手写的单个文本不要超过 3000 字节,也是无限拼接

    看起来是 https://livesql.oracle.com/ 不行,不清楚他们是哪里给代码下药了,本以为 pgsql 是最难用的,没想到要让位给 oracle 了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3044 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 12:41 PVG 20:41 LAX 04:41 JFK 07:41
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86