oracle执行拼接的sql
procere proc_test(
in_id in varchar2,
out_sum out varchar2
) as
begin
execute immediate 'select count(*) from table_name '||in_id into out_sum;
end;
/
sqlplus里调用时:
var out_sum varchar2(10)
exec package_name.proc_test('where id=''XXX'' or 1=1',:out_sum)
print out_sum
Ⅱ Oracle Sql 如何将两个字段拼接到一块
select列1from表1
unionall
select列2from表1
Ⅲ oracle中sql语句如何动态拼接
SQL code
--在存储过程里面完成呗
--例:
create or replace procere yyp_cwdh(table_name varchar)
is
str_sql varchar2(400):='';
begin
str_sql:='select * from '||table_name||' where 1=1';
execute immediate st……
Ⅳ Oracle [存储过程] 执行动态拼接SQL语句并返回结果
建议你用 instr函数,v_sql条件改为
where instr(p_jbm,t.jbm)>0试试吧。
Ⅳ oracle sql字段值拼接问题
SELECT LPAD(CLO_NAME,LENGTH(CLO_NAME)+CLO_NUM) FROM TABLE_NAME
Ⅵ SQL怎么拼接字符串
不同的数据库,相应的字符串拼接方式不同,通过对比加深一下记忆。
一、MySQL字符串拼接
1、CONCAT函数
语法格式:CONCAT(char c1, char c2, ..., char cn) ,其中char代表字符串,定长与不定长均可以
连接两个字符串
(6)oracle执行拼接的sql扩展阅读
字符串函数(String processing function)也叫字符串处理函数,指的是编程语言中用来进行字符串处理的函数,如C,pascal,Visual以及LotusScript中进行字符串拷贝,计算长度,字符查找等的函数。
字符串主要用于编程,概念说明、函数解释、用法详述见正文,这里补充一点:字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“a”,s[10]="j"。
而字符串的零位正是它的长度,如s[0]=10(※上述功能Ansistring没有。),这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。
字符串函数的应用
1、连接运算 concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn.
例:concat(‘11’,'aa’)='11aa’;
2、求子串。 Copy(s,I,I) 从字符串s中截取第I个字符开始后的长度为l的子串。
例:(‘abdag’,2,3)=’bda’
3、删除子串。过程 Delete(s,I,l) 从字符串s中删除第I个字符开始后的长度为l的子串。
例:s:=’abcde’;delete(s,2,3);结果s:=’ae’
4、插入子串。 过程Insert(s1,s2,I) 把s1插入到s2的第I个位置
例:s:=abc;insert(‘12’,s,2);结果s:=’a12bc’
5、求字符串长度 length(s) 例:length(‘12abc’)=5
在ASP中 求字符串长度用 len(s)例: len("abc12")=5
6、搜索子串的位置 pos(s1,s2) 如果s1是s2的子串 ,则返回s1的第一个字符在s2中的位置,若不是子串,则返回0.
例:pos(‘ab’,’12abcd’)=3
7、字符的大写转换。Upcase(ch) 求字符ch的大写体。
例:upcase(‘a’)=’A’
8、数值转换为数串。 过程 Str(x,s) 把数值x化为数串s.
例:str(12345,s); 结果s=’12345’
9、数串转换为数值。 过程val(s,x,I) 把数串s转化为数值x,如果成功则I=0,不成功则I为无效字符的序数,第三个参数也可不传
例:val(‘1234’,x,I);结果 x:=1234
Ⅶ oracle 在PLSQL脚本中如何表名称与数字字符串拼接
使用plsql存储过程制造一个脚本如:
create or replace procere test_val
(etl_date varchar2, --时间或者数字变量
data out sys_refcursor ---存放数据
) as
s_sql varchar2(1000); --执行sql
begin
s_sql := 'SELECT A,B FROM tsalpludetail' || etl_date ;
--dbms_output.put_line(s_sql);----打印sql可以不需要
open data for s_sql; ---把结果集放入data
end test_val;
执行后,打开存储过程
至此完成
Ⅷ ORACLE存储过程中拼接sql语句 后在EXCUTE的时候总是报错(详见下面)
对于这种动态SQL的错误,我的建议是把PS_SQL类似这样的字符变量通过dbms_output.putline('PS_SQL
IS:'||PS_SQL);先在命令行打印出来看看,再去执行打印出来的SQL就知道哪个
引号
有问题。
Ⅸ oracle 存储过程 ,执行拼接sql,给制定参数赋值
execute immediate v_sql into rep_Val;