使用原生SQL执行动态参数,SQL会报错,提示@错误,只能写字符串类型的sql。

    将变量替换掉

    1. select BASEID,SCCODE,JSON,LASTDATE from ENTERPRISEPUBDB.{pair.Value} where BASEID = '{baseId}'
    1. // orcale 语法 参数使用 冒号(:)
    2. // 全文索引
    3. res = _freeSql.Ado.Query<DmBizBaseInfo>
    4. (@"select ""Id"",""SCCode"",""EntName"",""LegRep"",""EntBigType"",""EntType"",""EstDate"",""Addr"",""Status"",""ValidDate"",""ValidCode"",""LastDate"" from
    5. ENTERPRISEDB.""Biz_Base_Info"" where CONTAINS(""EntName"", :keyword) limit 50",
    6. new { keyword = entNameOrSCCode });

    image.png

    DM管理工具
    image.png

    1. -- 删除全文索引
    2. DROP CONTEXT INDEX IF EXISTS ENTNAME_IDX ON ENTERPRISEDB."Biz_Base_Info";
    3. -- 中文最少分词 CHINESE_LEXER (效率),机械双分词 CHINESE_VGRAM_LEXER(准确度)
    4. CREATE CONTEXT INDEX ENTNAME_IDX ON ENTERPRISEDB."Biz_Base_Info"("EntName") LEXER
    5. CHINESE_LEXER
    6. -- 指定为SYNC TRANSACTION时,每次事务提交后,若基表数据发生变化,系统会自动以增量更新方式填充全文索引;
    7. SYNC TRANSACTION;
    8. -- 查询样例
    9. select "Id","SCCode","EntName",
    10. "LegRep","EntBigType","EntType","EstDate",
    11. "Addr","Status","ValidDate","ValidCode",
    12. "LastDate" from ENTERPRISEDB."Biz_Base_Info"
    13. where CONTAINS("EntName", '书屋') limit 50;

    样例代码,发送http请求,通知程序

    1. dbms_output.enable;
    2. 建立存储过程
    3. /***Manager***/CREATE PROCEDURE "ENTERPRISEPUBDB"."testhttp"
    4. AS
    5. req utl_http.REQ;
    6. resp utl_http.resp;
    7. data varchar2(32563);
    8. receiveDate varchar;
    9. BEGIN
    10. req :=
    11. utl_http.begin_request('http://10.0.11.102/', 'GET');
    12. data := '';
    13. utl_http.write_text(req, data);
    14. resp := utl_http.get_response(req);
    15. utl_http.set_body_charset(resp, 'utf-8');
    16. utl_http.read_text(resp, receiveDate, 1024);
    17. dbms_output.put_line(receiveDate);
    18. utl_http.end_response(resp);
    19. END;