我先建了乙個表
create table data_table
(tablename varchar2(40),
clo varchar2(40),
data varchar2(40),
exe_date date);
declare c varchar2(30);
begin
-- call the procedure
c :='aafunct110900000066';
p_data (c);
end;
--select count(*) from data_table
建立或修改儲存過程
create or replace procedure p_data
(in_data in varchar2 --輸入的引數,就是上邊我輸入的abc)is
--設定變數,你看名字應該基本都能看懂
v_tablename varchar2(40);
v_cloumn_name varchar2(40);
--v_date_type varchar2(40);
v_count int;
v_sql varchar2(2000);
v_data_type varchar2(40);
--按照如下條件取出游標,其中users是表空間,那個地方你可以改
cur_data sys_refcursor;
begin--判斷是數字
if lower(in_data) = upper(in_data) then
v_sql :=' select a.table_name, a.column_name, a.data_type from user_tab_columns a, tabs b where a.table_name = b.table_name'
||' and b.tablespace_name like ''nnc_%'' and (a.data_type = ''number'') order by a.table_name, a.column_name;'; --users
open cur_data for v_sql;--開啟游標
loop
fetch cur_data
into v_tablename, v_cloumn_name, v_data_type;
exit when cur_data%notfound;
--取出游標裡的各個變數,拼成動態sql語句,
if v_data_type = 'number' then
v_sql := 'select count(*) from ' || v_tablename || ' where ' || v_cloumn_name || ' = ' ||in_data;
end if;
execute immediate v_sql
into v_count;
--如果查詢出來的條數大於,則將查詢中的表名,欄位名和輸入的內容插入到我建的那個表中
if v_count > 0 then
v_sql := 'insert into data_table values (''' || v_tablename ||
''',''' || v_cloumn_name || ''',''' || in_data ||
''',sysdate)';
execute immediate v_sql;
commit;
end if;
end loop;
close cur_data;
else--不是數字
v_sql :=' select a.table_name, a.column_name, a.data_type from user_tab_columns a, tabs b where a.table_name = b.table_name'
||' and b.tablespace_name like ''nnc_%'' and (a.data_type = ''varchar2'') order by a.table_name, a.column_name'; --users
open cur_data for v_sql;--開啟游標
loop
fetch cur_data
into v_tablename, v_cloumn_name, v_data_type;
exit when cur_data%notfound;
--取出游標裡的各個變數,拼成動態sql語句,
if v_data_type = 'varchar2' then
v_sql := 'select count(*) from ' || v_tablename || ' where instr(' || v_cloumn_name || ',''' || in_data || ''')>0';
else
v_sql := 'select count(*) from data_table where 1=2';
end if;
execute immediate v_sql into v_count;
--如果查詢出來的條數大於,則將查詢中的表名,欄位名和輸入的內容插入到我建的那個表中
if v_count > 0 then
v_sql := 'insert into data_table values (''' || v_tablename || ''',''' || v_cloumn_name || ''',''' || in_data || ''',sysdate)';
execute immediate v_sql;
commit;
end if;
end loop;
close cur_data;
end if;
--end;
end p_data;
在乙個字串中尋找另外乙個字串
在乙個字串中尋找另外乙個字串 public class text foundit true break test system.out.println foundit?found it didn t find it 該段程式有點難以理解,主要就是if語句的理解,if searchme.charat ...
在乙個字串中查詢另外乙個字串的全排列出現位置
1 在乙個字串中查詢另外乙個字串任意的全排列出現位置。例如 a abcfsfcba b abc 則返回。the des s character must be adjacent public static list integer getindex string res,string des has...
php判斷乙個字串包含另乙個字串
a 58252,58253 如果 a 中存在 b,則為 true 否則為 false。b 58253 if strpos a,b false else 查詢字串在陣列中出現的次數 array array 1,hello 1,world hello 11 計算 string在 array 需為陣列 中...