本人仅知道连接字符串
SELECT ename  ||' is a '|| job FROM emp;
比如此句显示的就是类似MIKE is a Manager的结果;
那么语句中
v_sql:='select * from (select t1.*, rownum rn from (select * from '||tableName||') t1 where rownum<='||v_end||') where rn>='||v_begin;  
''与||需要怎么理解,具体指的就是||与''的用法?''到底是怎么将此sql分句的?其中tableName、v_begin、v_end、v_sql均为变量是
'select * from (select t1.*, rownum rn from (select * from '            ||tableName||              
') t1 where rownum<='            ||v_end||              
') where rn>='              ||v_begin
三部分还是
where rownum<='||v_end||'
select * from '||tableName||') t1 where rownum<='||v_end||'
'select * from (select t1.*, rownum rn from (select * from '||tableName||') t1 where rownum<='||v_end||') where rn>='
三部分呢个人倾向于第一种

解决方案 »

  1.   

    没看懂LZ到底是要问什么东西。
    ||就是字符串的连接
    'XXX'就是字符串
    至于书写的格式 全看自己喜欢。
      

  2.   

    oracle里面是以单引号表示字符串的,所以在写动态sql的时候如果sql中含有单引号的字符串,就需要在增加一个'以便解析的时候使用到。
      

  3.   

    那2楼朋友的意思可以这么理解不
    'select * from (select t1.*, rownum rn from (select * from '是一个字符串
    ') t1 where rownum<=' 是一个字符串
    ') where rn>='是一个字符串
      

  4.   

    那你说的字符串指的是哪个呢,方便举个例子吗?
    比如说
    我的问题中的哪段,谢谢了
    比如是
    'select * from (select t1.*, rownum rn from (select * from '
    还是select * from '||tableName||'
    这段呢
    谢谢了 
      

  5.   


    那2楼朋友的意思可以这么理解不
    'select * from (select t1.*, rownum rn from (select * from '是一个字符串
    ') t1 where rownum<=' 是一个字符串
    ') where rn>='是一个字符串
      

  6.   

    ||是连字符,'abc'是个字符串常量,单引号表示它的起止,输出时不会显示出来。如果我想把它和别的串连接,可以'abc'||'de',当然这么做比较傻,一般直接写'abcde'也可以'abc'||v_col1 ,v_col1是个变量多个变量连接可以用v_col1||v_col2||v_col3一般都是变量出现在常量的中间,所以一般是
    'and a = '||v_col1||' and b < '||v_col2||' and c > '||v_col3....最后打印出来是 a = 1 and b < 2 and c > 3如果在字符中要表示单引号,需要用两个,以区别起止,比如'I''m'输出是 I'm。如果觉得容易出错,可以用chr(39)代替单引号 'I'||chr(39)||'m'输出也是 I'm。