Oracle编程时遇到的字符连接串疑惑
本人仅知道连接字符串
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>='
三部分呢
个人倾向于第一种
------解决方案--------------------没看懂LZ到底是要问什么东西。
------解决方案--------------------就是字符串的连接
'XXX'就是字符串
至于书写的格式 全看自己喜欢。
------解决方案--------------------oracle里面是以单引号表示字符串的,所以在写动态sql的时候如果sql中含有单引号的字符串,就需要在增加一个'以便解析的时候使用到。
------解决方案--------------------是连字符,'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。