它有点复杂,但我尝试对其进行解释。我在数据库中的某个表看起来像这样。这是partno表
... | Part No | Convert | ...
... | 00000 | ABC | ...
... | 00001 | DEF | ...
所有输入值必须以00000或00001开头,例如= 0000012345,000014321。
然后,基于这前5个值(00000和00001),它将像Convert列一样转换为。
示例:
输入:0000012345预期:ABC12345
输入:000014321预期:DEF4321
表示我必须根据上表转换输入的内容,但我不知道该怎么做。因此,我作弊并进行如下查询:
Insert into pencil (pencil_no,lastdate)
values('ABC'|| SUBSTR('" + pen + "',1,2), sysdate)
//pen is the input value
它在我得到所需的输出时起作用。但是不幸的是,这不是正确的方法,因为表中的数据将被更新和更改。
有人可以指导我如何执行此操作吗?在此先感谢
您的插入语句需要包含您的转换表的查找,在我的插图中,我将其称为CONVERT_TABLE。
您需要两次引用输入值,一次用于查找,一次用于插入值。我在这里使用SQL * Plus替代变量;您将需要调整语法以使其适合,但是您正在运行SQL。
insert into pencil (pencil_no,lastdate)
select c.convert || substr('&&input_value',6), sysdate
from convert_table c
where c.part_no = substr('&&input_value',1, 5)