UPDATE DEFAULT
2015-08-14 07:01
采纳率: 60%
浏览 2.0k

关于oracle字符串截取

create table tablename (col char(16))
我想实现如果col长度超过16则进行截取,只取前16
不能用check,因为我是用Excel批量导入数据的
col长度一般不会超过16,但是有时候长度达到五十,所以我也不能把col的长度定义太大

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • espace123123 2015-08-18 03:52
    已采纳

    如果你是用plsql工具,SELECT ...FOR UPDATE的方式,复制excel里数据,黏贴。再commit到数据库的话。你可以用excel上的函数,对数据截取前16位

    点赞 打赏 评论
  • Robot-C 2015-08-14 07:12

    create or replace function stringS
    (p_str        in out varchar2, 
    p_flag       in varchar2 
    )
      return varchar2 ......
    答案就在这里:oracle截取字符串
    ----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

    点赞 打赏 评论
  • blownewbee 2015-08-14 23:03

    select SUBSTR(col ,0,16) as col from tablename

    点赞 打赏 评论
  • UPDATE DEFAULT 2015-08-17 09:15

    你们都误解我的意思了,例如col长度是16,但是我插入长度为17的字符串

    点赞 打赏 评论
  • jimcary 2015-09-08 02:21

    如果你是用程序方式插入的话,可以用程序读取EXCEL中的内容转化为dataset,然后再循环截取数据插入数据库表中,
    如果直接用EXCEL复制到oracle数据库中,须对excel数据进行处理,可以采用函数的方式MID函数,截图数据,然后
    替换原来的列,再插入到数据库,希望能够对你有所帮助。

    点赞 打赏 评论

相关推荐 更多相似问题