有二种表,
一张表TAB_A,字段有COLUMN_A,存放SQL代码比如:IF 1 = 2 THEN 1 ELSE 2 END; VAR A = 'CCAV'
另一张表TAB_B,字段有COLUMN_A和COLUMN_B,COLUMN_A 存放着:IF ,COLUMN_B 存放着:如果
就是代码和注释对着表
我想问问,怎么select * from tab_a;把字段COLUMN_A翻译成注释展现出来:如果如下:如果 1 = 2 THEN 1 其它 2 结局; 变量 中央电视台 = 'CCAV'
一张表TAB_A,字段有COLUMN_A,存放SQL代码比如:IF 1 = 2 THEN 1 ELSE 2 END; VAR A = 'CCAV'
另一张表TAB_B,字段有COLUMN_A和COLUMN_B,COLUMN_A 存放着:IF ,COLUMN_B 存放着:如果
就是代码和注释对着表
我想问问,怎么select * from tab_a;把字段COLUMN_A翻译成注释展现出来:如果如下:如果 1 = 2 THEN 1 其它 2 结局; 变量 中央电视台 = 'CCAV'
--建表
create table tab_a as(
select 'if 1=2 then 1 else 2 end; var a=''ccav''' cola
from dual)create table tab_b as(
select 'if' cola,'如果' colb from dual union all
select 'else','其他' from dual union all
select 'end','结局' from dual union all
select 'var','变量' from dual union all
select 'ccav','中央电视台' from dual)--建函数
create or replace function fun_replace(v_char varchar2)
return varchar2
as
n_char varchar2(4000);
begin
n_char:=v_char;
for i in (select * from tab_b)
loop
n_char:=replace(n_char,i.cola,i.colb);
end loop;
return n_char;
end;
select fun_replace(cola) from tab_a;FUN_REPLACE(COLA)
----------------------------------------------------
如果 1=2 then 1 其他 2 结局; 变量 a='中央电视台'
1=2永远是false,不知道楼主想表达什么可不可以这样理解:
TAB_A是业务表,里面有字段COLUMN_A
TAB_B是代码表,里面存的是代码COLUMN_A字段和代码的注释COLUMN_B字段
然后查询A表的时候,把COLUMN_A这个字段的注释也显示出来,如果是这样的话,应该这样写:Select t1.Column_a,
(select t2.column_b from tab_b t2 where t2.column_a = t1.column_a)
from tab_a t1
=> 如果 1 = 2 那么 1 否则 2 结束, 变量 A = "中央电视台".如果我们能把它从英文翻译成中文,那是不是也可以反过来把中文翻译成英文呢?如果真能有比较高的准确率,那我们的软件在某种程序上提供一个脚本语言支持让用户用麦克风来描述他希望的查询数据的逻辑,我们把只需要把里面可以用到的表的字段列出来让用户“讲出来”就行了,比如,“查找所有名字=CCAV 的用户发布的广告”,我们把它翻译成 "select * from 广告 where customer = 'A'"。