我有一个要求,我从user_tables读取table_name,并在运行时在table_name之后追加6个字母,例如
prev_table_name= F_ALIGN_PROF_PRD_MTH_SLS_NM2
New_table_name = prev_table_name_ABCDE
所以新的表名超过了30个字符的限制,我收到了错误。
要解决这个问题,我正在寻找一种方法,这样我就可以在运行时缩短table_name,并将我的6个字母附加到它。
请建议解决此问题的任何方法
答案 0 :(得分:1)
那么这样的事情呢?
{{1}}
答案 1 :(得分:0)
你想要这样的结果吗?
select SUBSTR('prev_table_name_ABCDE' , 1, 6) from dual
Result : prev_t
如果您想要可读名称,可以使用最后的'_'
SELECT SUBSTR('prev_table_name_ABCDE', 1 ,INSTR('prev_table_name_ABCDE', '_',1,3)-1)
FROM dual;
Result :prev_table_name
答案 2 :(得分:0)
我找到了一种方法(它是一种临时解决方案,但它会起作用)
阅读表格名称并删除其中的所有元音和数字。
答案 3 :(得分:0)
如何创建一个新表来存储旧的和新的表名?
my_table
oldname F_ALIGN_PROF_PRD_MTH_SLS_NM2
newname TEMP_ABCD