精华内容
下载资源
问答
  • oraclesql拼接单引号问题
    千次阅读
    2019-08-12 22:00:36
    /*A.首尾单引号为字符串识别标识,不做转译用*/
    select ''||to_char('CRUDBOY')||'' from dual;--CRUDBOY
    /*B.首尾单引号里面如果出现的单引号,并且有多个,则相连两个单引号转译为一个字符串单引号*/
    select '''' || to_char('CRUDBOY') || '''' from dual;--'CRUDBOY'
    select '''''' || to_char('CRUDBOY') || '''''' from dual;--''CRUDBOY''
    select '''''''' || to_char('CRUDBOY') || '''''''' from dual;--'''CRUDBOY'''
    /*C.单引号一定成对出现,否者这个字符串出错,因为字符串不知道哪个单引号负责结束*/
    select ' '' ' ||' ' || ' '' ' || to_char('CRUDBOY')||' '' ' ||' ' || ' '' '  from dual;-- '   ' CRUDBOY ' ' 
    select ' '' ' ||' ' || ' '' ' || to_char('CRUDBOY') from dual;-- '   ' CRUDBOY
    /*''';'同时满足A.B*/
    select ' '' ' ||' ' || ' '' ' || to_char('CRUDBOY')||''';' from dual;-- '   ' CRUDBOY';
    

    oracle语句拼接应该记住的三点,同时应该灵活运用/*''';'同时满足A.B*/ select ' '' ' ||' ' || ' '' ' || to_char('CRUDBOY')||''';' from dual;-- ' ' CRUDBOY';转译与标识的完美结合,二者同时存在。
    写在最后
    纸上得来终觉浅,绝知此事要躬行

    更多相关内容
  • oracle 单引号拼凑和动态sql

    千次阅读 2021-05-03 08:05:41
    单引号问题(')在oracle中4个单引号''''代表一个单引号'。在动态sql拼凑中我们经常需要拼凑单引号。比如:变量 中带单引号:IV_DATE_FORMAT:=''''||'YYYYMM'||'''';动态sql中用单引号:sqlStr := 'select * from ...

    a.单引号问题(')

    在oracle中4个单引号''''代表一个单引号'。在动态sql拼凑中我们经常需要拼凑单引号。比如:

    变量 中带单引号:IV_DATE_FORMAT:=''''||'YYYYMM'||'''';

    动态sql中用单引号:sqlStr := 'select * from tbName where name = ' ||''''||nameValue||'''';

    b.动态sql执行和传值(EXECUTE IMMEDIATE )

    例子:update

    EXECUTE IMMEDIATE 'UPDATE TF_B_DAILYSALES_STAT SET '||IV_COL_NAME||'=:1'||

    ' WHERE RES_KIND_CODE = :2'||

    ' AND BRAND_CODE = :3'||

    ' AND MODEL_CODE = :4'||

    ' AND EPARCHY_CODE = :5'||

    ' AND CITY_CODE = :6'||

    ' AND STOCK_ID = :7'||

    ' AND SALE_TYPE = :8'||

    ' AND SUBSTR(OPER_DATE_STR,1,6) = TO_CHAR(SYSDATE-1, '||IV_DATE_FORMAT||')'

    USING RS.SALE_NUM, RS.RES_KIND_CODE, RS.BRAND_CODE, RS.MODEL_CODE, RS.EPARCHY_CODE, RS.CITY_CODE, RS.STOCK_ID, RS.SALE_TYPE;

    例子:insert

    EXECUTE IMMEDIATE 'INSERT INTO TF_B_DAILYSALES_STAT'||

    '(TRADE_ID,'||

    ' OPER_DATE_STR,'||

    ' OPER_TIME,'||

    ' STAT_TYPE,'||

    ' RES_KIND_CODE,'||

    ' BRAND_CODE,'||

    ' MODEL_CODE,'||

    ' PROVINCE_CODE,'||

    ' EPARCHY_CODE,'||

    ' CITY_CODE,'||

    ' STOCK_ID,'||

    ' SALE_TYPE,'||IV_COL_NAME||

    ')VALUES(:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13)'

    USING RS.TRADE_ID, RS.OPER_DATE_STR, RS.OPER_TIME, RS.STAT_TYPE, RS.RES_KIND_CODE, RS.BRAND_CODE,

    RS.MODEL_CODE, RS.PROVINCE_CODE, RS.EPARCHY_CODE, RS.CITY_CODE, RS.STOCK_ID, RS.SALE_TYPE, RS.SALE_NUM;

    说明:使用动态sql绑定变量形式可以达到sql存储共享,提高执行性能,比动态拼凑好sql再执行效率高。

    展开全文
  • 1.oracle查询数据结果用“,”拼接 select listagg (to_char(y.id), ',') WITHIN GROUP (ORDER BY y.id) as id from tb_demo y where y.zjzt = '1' 结果: 0903B16D3B3D53824C29F3BFA9F7FC59,095FB1823B3D53820E9...

    1.oracle查询数据结果用“,”拼接

    select  listagg (y.id, ',')    WITHIN GROUP (ORDER BY y.id) as id from  tb_demo y where y.zjzt = '1' 
    

    结果如下:

    0903B16D3B3D53824C29F3BFA9F7FC59,095FB1823B3D53820E9EC7873B5DD5FF,185363E03B3D53826E9FD5F95219D0EB,46AA37053B3D538206160BAB5007B03B

    2.在上面的基础上,加上单引号

    select  listagg (to_char(y.id), ''',''')    WITHIN GROUP (ORDER BY y.id) as id from  tb_demo y where y.zjzt = '1' 
    

    两个单引号就是转义,会将一个引号留下

    结果如下:

    0903B16D3B3D53824C29F3BFA9F7FC59’,‘095FB1823B3D53820E9EC7873B5DD5FF’,‘185363E03B3D53826E9FD5F95219D0EB’,'46AA37053B3D538206160BAB5007B03B

    展开全文
  • 因此想到了使用awk将引起异常的productID拿出来,然后拼接sql语句,添加到表中。执行如下:$ cat p_exec_info112_t.log | grep exception看到的数据是如下格式web service requset exception at prod...

    因工作原因,发现程序里面抛出的有异常,需要将引起异常的productID。

    放入另外一张表中。因异常信息都在一个文件中。因此想到了使用awk将引起异常的

    productID拿出来,然后拼接成sql语句,添加到表中。

    执行如下:

    $ cat p_exec_info112_t.log | grep exception

    看到的数据是如下格式

    web service requset exception at productID 7612122715594576

    web service requset exception at productID 7612122615465042

    web service requset exception at productID 7612122715535222

    web service requset exception at productID 7612122715546233

    web service requset exception at productID 7612122615499913

    我们看到productID是最后一个字段,因此我们使用awk很容易的将productID集合取出

    执行如下:

    $ cat p_exec_info112_t.log | grep exception | awk '{print $NF}'

    7612122715594576

    7612122615465042

    7612122715535222

    7612122715546233

    7612122615499913

    下面就该拼接SQL语句了,其中有个棘手的问题,就是单引号"'"的输出。

    经过查找,找到了两种解决方法。

    1.使用\047将单引号输出,这个很容易理解

    执行如下:

    $ cat p_exec_info112_t.log | grep exception | awk '{print "insert into TI_112_WEBSERVICE_EXCEPTION(user_id, trade_id, in_time, deal_tag) values(" $NF ", \047\047, sysdate, \047-2\047);"}'

    insert into TI_112_WEBSERVICE_EXCEPTION(user_id, trade_id, in_time, deal_tag) values(7612122715594576, '', sysdate, '-2');

    insert into TI_112_WEBSERVICE_EXCEPTION(user_id, trade_id, in_time, deal_tag) values(7612122615465042, '', sysdate, '-2');

    insert into TI_112_WEBSERVICE_EXCEPTION(user_id, trade_id, in_time, deal_tag) values(7612122715535222, '', sysdate, '-2');

    insert into TI_112_WEBSERVICE_EXCEPTION(user_id, trade_id, in_time, deal_tag) values(7612122715546233, '', sysdate, '-2');

    insert into TI_112_WEBSERVICE_EXCEPTION(user_id, trade_id, in_time, deal_tag) values(7612122615499913, '', sysdate, '-2');

    2.使用转义符进行操作,执行如下:

    $ cat p_exec_info112_t.log | grep exception | awk '{print "insert into TI_112_WEBSERVICE_EXCEPTION(user_id, trade_id, in_time, deal_tag) values(" $NF ", '\'''\'', sysdate, '\''-2'\'');"}'

    insert into TI_112_WEBSERVICE_EXCEPTION(user_id, trade_id, in_time, deal_tag) values(7612122715594576, '', sysdate, '-2');

    insert into TI_112_WEBSERVICE_EXCEPTION(user_id, trade_id, in_time, deal_tag) values(7612122615465042, '', sysdate, '-2');

    insert into TI_112_WEBSERVICE_EXCEPTION(user_id, trade_id, in_time, deal_tag) values(7612122715535222, '', sysdate, '-2');

    insert into TI_112_WEBSERVICE_EXCEPTION(user_id, trade_id, in_time, deal_tag) values(7612122715546233, '', sysdate, '-2');

    insert into TI_112_WEBSERVICE_EXCEPTION(user_id, trade_id, in_time, deal_tag) values(7612122615499913, '', sysdate, '-2');

    你可以看到,执行的结果是一样的,你可以根据你的实际情况,选择采用哪一种方式进行

    成功将sql语句输出后,下一步,就将sql语句输出到文件中,这个应该很简单了。

    执行如下:

    $ cat p_exec_info112_t.log | grep exception | awk '{print "insert into TI_112_WEBSERVICE_EXCEPTION(user_id, trade_id, in_time, deal_tag) values(" $NF ", '\'''\'', sysdate, '\''-2'\'');"}'   >> error.sql

    第一次用oracle,遇到一个问题,就是通过查询,来更新某个字段值,sql语句如下:

    update TI_112_WEBSERVICE_EXCEPTION tb1 set (trade_id) =

    (select max(trade_id) from ti_inf_112_allinfo_t tb2 where tb2.in_time > to_date('2012-12-28 00:00:00', 'yyyy-MM-dd hh24:mi:ss')

    and tb1.user_id = tb2.user_id

    group by tb2.user_id

    );

    因此一个user_id可能存在多个trade_id,因此使用了group by,进行操作。

    不然的话,就会出现Oracle的异常了。

    ORA-01427: single-row subquery returns more than one row

    展开全文
  • 单引号问题(')在oracle中4个单引号''''代表一个单引号'。在动态sql拼凑中我们经常需要拼凑单引号。比如:变量 中带单引号:IV_DATE_FORMAT:=''''||'YYYYMM'||'''';动态sql中用单引号:sqlStr := 'select * from ...
  • oracle sql 引号拼接嵌套

    千次阅读 2018-09-29 16:49:25
    实现的效果是,通过sql拼接一个shell命令,通过执行该shell 脚本来处理集群中所有服务器中的任务 拼接awk时候是用的两个单引号’’,而不是一个双引号 如下图: ...
  • oracle存储过程单引号拼接和变量拼接 1.单引号的作用:在oracle中单引号主要有两个作用,一是字符串都用单引号引用,例如'abc';二是转义符,转义符在使用时一般会出现多个连在一起的单引号,相对难理解一些。下面...
  • SQL存储过程中给条件变量加上单引号,不加语句会出问题,以下是在存储过程中将条件where设置成了动态变化的,给where赋完值再和前面的语句拼接,再execute(SQL) set @where= '(DATEDIFF(day,'''+CONVERT(varchar...
  • ORACLE中,单引号有两个作用,一是字符串是由单引号引用,二是转义。单引号的使用是就近配对,即就近原则。而在单引号充当转义角色时相对不好理解。1、从第二个单引号开始被视为转义符,如果第二个单引号后面还有...
  • Oracle sql中的单引号

    千次阅读 2018-04-14 19:17:10
    关于sql中的单引号,看以下几个例子: 例1: select '张三' as sname from dual; 例2: select '''张三''' as sname from dual; 例3: select '''''张三''''' as sname from dual; 例4:将由...
  • 在存储过程中动态sql拼接的两种写法 单引号 IN_PROTOCOL_VERSION:= '1'; OPEN p_cur FOR SELECT * FROM ACS_CMS_TRANSACTION WHERE 1=1 AND (PROTOCOL_VERSION like '%'||IN_PROTOCOL_VERSION||'%'); 三引号 ...
  • Oracle PL/SQL 中如何将单引号作为数据类型插入表中 据我所查的资料里,在MySQL的基本查询中,单引号(’)与双引号(”)的使用要求没有那么严格,但是在Oracle PL/SQL中,单引号与双引号的使用要求不一样,在字段...
  • select ‘拼接表a里字段1:’’’ || a.字段1 || ‘’‘和字段2:’’’ || a.字段2 || ‘’’’ from a –––––– Oracle数据库用符号||拼接...拼接一个单引号字符串需要在拼接单引号内部输入两个单引号(’’) ...
  • 在我的上一篇文章中 ,我提到了使用双引号在Oracle标识符中显式指定大小写的缺点是可能会将字符串文字与单引号混淆。 尽管我个人并不认为这是避免在Oracle中避免对标识符使用双引号的充分理由,但是值得意识到这种...
  • 关于怎么在字符串单引号内拼接单引号,可以使用 ''' 三个单引号这种方法,但是拼接过程要检查比较仔细,这里介绍另外一种方法,使用 ASCII 编码,单引号 ' 的编码是39,所以拼接字符串可以这样写 str := 'select * ...
  • 转:https://blog.csdn.net/learning_oracle_lh/article/details/46639507ORACLE单引号转义:**在ORACLE中,单引号有两个作用:1:字符串是由单引号引用2:转义。单引号的使用是就近配对,即就近原则。而在单引号充当...
  • create or replace procedure mergerOrder(  v_ids in varchar2,  v_productCode in varchar2,  v_productCateCode in varchar2) is  type cur_type is ref cursor;  cur_policy cur_
  • ORACLESQL拼接问题

    2021-05-08 02:58:30
    FROM USER_UNIT WHERE ORGMENBERID='zhangshang'这个我查询出来是701,702,703这样的数据,我需要放到WHERE条件中IN出来SELECT USERGROUPID FROM V_USER_CREGION WHERE USERGROUPID IN ('')=========不知道怎么拼接.....
  • Oracle_字段拼接_逗号_单引号

    千次阅读 2018-06-21 15:33:33
    Oracle_字段拼接逗号单引号 select code,USER_USERID,USER_USERNAME, ('update t_user set userId = ''' || USER_USERID|| ''',userName=''' || USER_USERNAME|| ''' where userCode = ''' || code||'''') from ...
  • sql语句 拼接字符串 含有 单引号

    万次阅读 2017-01-04 11:27:23
    oracle sql语句尽量不要含有特殊字符。 sql语句拼接字符 ||(双竖线,enter上边那个键按两次), 语句:select SYSDATE||USER from dual 显示:04-JAN-17chinabank 把两个字段的内容拼接在了一起,放在一个字段中...
  • 将查询到的记录,使用Excel 拼接 ="'"&A1&&...
  • 我希望PLsql生成如下所示的字符串: COMMENT ON COLUMN TABLE.COLUMN IS 'comment from ...我只是在生成COMMENT ON字符串之前用两个单引号将source(description)列的单引号替换,然后是ROLLBACK。 任何更好的解决方案?
  • Oracle中,单引号有两个作用,一是字符串是由单引号引用,二是转义。单引号的使用是就近配对,即就近原则。而在单引号充当转义在Oracle中,单引号有两个作用,,一是字符串是由单引号引用,二是转义。单引号的使用...
  • ORACLE中,单引号有两个作用,一是字符串是由单引号引用,二是转义。单引号的使用是就近配对,即就近原则。而在单引号充当转义角色时相对不好理解1、从第二个单引号开始被视为转义符,如果第二个单引号后面还有...
  • /**在ORACLE中 双引号" 被当做一个普通的字符串来处理**/ SELECT '"' AS "字符串结果" FROM DUAL;.../**测试一下三个单引号的情况 : ORA-01756:引号内的字符串没有正确结束**/ SELECT ''' FROM DU
  • 1、定义了一个函数,有四个变量,是哪个字符串类型,测试的时候是没有问题,但是调用的时候一直报无效字符。 这里测试没有问题 ...select PKG_EFFIC_MONTH.calcu_month('11','202004','GD0001',1) from dual;...
  • 常用字符串拼接引号处理: select ‘abcdef’ from dual;         输出:abcdef select ‘aaa’‘abcdef’‘bbb’ from dual;       &...
  • Oracle中动态SQL拼接

    万次阅读 2018-07-12 14:15:57
    直接用单引号单引号的使用是就近配对,即就近原则。从第二个单引号开始被视为转义符 v_sql := ' insert into BJTONGRENTANGTEMPTB select distinct h.sellerid,h.sellercode,h.sellername,h.prodcode,h.prodname ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,128
精华内容 2,051
热门标签
关键字:

oracle sql拼接单引号