网站建设资讯

NEWS

网站建设资讯

oracle中如何拼表名,oracle怎么改表名

oracle 在PLSQL脚本中如何表名称与数字字符串拼接?

使用plsql存储过程制造一个脚本如:

10年积累的网站设计、成都网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有全南免费网站建设让你可以放心的选择与我们合作。

create or replace procedure 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中如何将表名与字符串拼接查询

办法是有的,就是特别麻烦,需要又重循环,第一重,循环所有表,第二重,循环特定表中的字段,然后将所有满足条件的表名和字段名插入到一张新的表中,然后再自己分析结果,确认究竟是哪个表哪个字段, 仅提供思想而已,需要息写一个procedure 或者function实现。

oracle如何获得一个全局唯一的表名

在后面加点东西,或者在前面加点东西就行了。

比如,tmp_表名_to_char(sysdate,'yyyymmddHH24')

看你多长时间执行一次,如果1天,那么就yyyymmdd就好,如果一个小时,那么就hh24,如果怕tmp被用了那么就t_m_p_,反正比较特殊就行。

但是注意别太长啊,我记得oracle的表名有长度限制的,是多少忘记了,dba_tables的table_name字段的长度。

请教:如何提取出Oracle数据库中所有表的表名

觉得你应该先弄清楚oracle的常规数据字典的结构,像9i里的常规数据字典中对象名称就有以user,all,dba为前缀的对象。

以user为例,我们查该对象下有些什么表,就应该执行下列的语句:

sqlselect

table_name

from

user_tables;

类似的,你可以进行替换。:)

如果你想查数据库中所有的表的话,可以查询

select

*

from

dba_tables

如果你想查询数据库中某个用户下的表的话,也可以登录这个用户,再查询:

select

*

from

user_tables

要想导入外部sql语句可以用命令

sql

@e:\文件名.sql

如你想保存

select

*

from

tablename;语句的结果,可以在sql*plus

里面这样:

spool

c:\test.sql

//这是保存文件的位置

select

*

from

tablename;

spool

off

在oracle中如何编写一个输入表名,然后匹配有关的列名,对应列名插入有指定的表

例如你指定写入的表为t_table_column表,过程传入参数为表用户,表名

create or replace procedure p_check_table(owner in varchar2,

table_name in varchar2) as

v_owner varchar2(100) := null;

v_table varchar2(200) := null;

v_table_num number(10) := null;

v_column clob := null;

begin

v_owner := upper(owner);

v_table := upper(table_name);

select count(1)

into v_table_num

from all_tables t

where t.OWNER = v_owner

and t.TABLE_NAME = v_table;

if v_table_num = 0 then

dbms_output.put_line(v_owner || '.' || v_table || ':表不存在');

return;

end if;

v_column := null;

for i in (select t.COLUMN_NAME, t.COLUMN_ID

from all_tab_columns t

where t.OWNER = v_owner

and t.TABLE_NAME = v_table

order by COLUMN_ID) loop

v_column := v_column || ',' || i.column_name;

end loop;

insert into t_table_column

(owner, table_name, column_name)

values

(v_owner, v_table, v_column);

commit;

exception

when others then

rollback;

dbms_output.put_line(v_owner || '.' || v_table || '异常' || sqlerrm);

end p_check_table;

/

在ORACLE中,如何找到任意SQL字符串中的表,并将表进行指定规则的替换,比如在表名后加DBLINK

动态SQL 实质就是执行的SQL字符串,所以你完全可以用拼接的方式,先把 字符串 拼接出来,然后用execute immediate 'sql' 来执行;

至于如果拼接出来 SQL,那就需要你去找规律,其实你可以对字符串做对此拼接,例如一下:str1 :='SELECT QW,QE,QR FROM Q WHERE Q=1';

str2 :='SELECT QW,COUNT(1) FROM EW,' || str1 || 'WHERE EW=QW GROUP BY QW;'

这类问题 完全属于个别案例,因为SQL的规律只有你自己最清楚,谁都无法提供一个完整的解决方案!


分享文章:oracle中如何拼表名,oracle怎么改表名
文章分享:http://njwzjz.com/article/dssidep.html