1.
2.选择SQL插入,导出到文件后打开导出的那个文件,把里面的insert插入语句复制到oracle控制台,创建新表,然后执行insert语句,注意,该改的要改
就比如这个json串,在oracle下不能使用map存储,要改成varchar2类型,同时要给外面的{}用单引号‘’引起来
如果需要里面的某个值,就执行下面的函数后
CREATE OR REPLACE FUNCTION GET_FROM_JSON(TABLE_ID VARCHAR2, KEY_JSON VARCHAR2) RETURN VARCHAR2 IS
JSON_VALUE VARCHAR(30);
JSON_INS INTEGER;
M_INS INTEGER;
D_INS INTEGER;
BEGIN
--获取json key位置
select instr(TO_CHAR(T.score), KEY_JSON) INTO JSON_INS from hive_scores T WHERE T.ID = TABLE_ID;
--获取json后第一个冒号
select instr(TO_CHAR(T.score), ':', JSON_INS) INTO M_INS from hive_scores T WHERE T.ID = TABLE_ID;
--获取json后第一个逗号
select instr(TO_CHAR(T.score), ',', JSON_INS) INTO D_INS from hive_scores T WHERE T.ID = TABLE_ID;
--最后一位json无逗号,直接取长度
if JSON_INS <> 0 AND D_INS = 0 then
select length(TO_CHAR(T.score)) INTO D_INS from hive_scores T WHERE T.ID = TABLE_ID;
end if;
--截取,字符串类型去除引号
select replace(SUBSTR(TO_CHAR(T.score), M_INS + 1, D_INS - M_INS - 1), '"', '')
INTO JSON_VALUE from hive_scores T WHERE T.ID = TABLE_ID;
RETURN JSON_VALUE;
END;
再这样查询value值
--单独查询k:v里的value值
select GET_FROM_JSON(id,'java') as java from hive_scores;