create table tablename (col char(16))
我想实现如果col长度超过16则进行截取,只取前16
不能用check,因为我是用Excel批量导入数据的
col长度一般不会超过16,但是有时候长度达到五十,所以我也不能把col的长度定义太大
如果你是用plsql工具,SELECT ...FOR UPDATE的方式,复制excel里数据,黏贴。再commit到数据库的话。你可以用excel上的函数,对数据截取前16位
create or replace function stringS
(p_str in out varchar2,
p_flag in varchar2
)
return varchar2 ......
答案就在这里:oracle截取字符串
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。
select SUBSTR(col ,0,16) as col from tablename
你们都误解我的意思了,例如col长度是16,但是我插入长度为17的字符串
如果你是用程序方式插入的话,可以用程序读取EXCEL中的内容转化为dataset,然后再循环截取数据插入数据库表中,
如果直接用EXCEL复制到oracle数据库中,须对excel数据进行处理,可以采用函数的方式MID函数,截图数据,然后
替换原来的列,再插入到数据库,希望能够对你有所帮助。