ORACLE 我要在sql语句中使用变量,在后面的表里面使用该变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE 我要在sql语句中使用变量,在后面的表里面使用该变量相关的知识,希望对你有一定的参考价值。

比如:TB_&MONTH_ID1这张表,后面的month_id1可以自动的按照我设定的变量来用,比如现在是3月份,我需要这个字段为201302,当为4月份的时候,我需要这个字段为3月份,该如何使用,求大侠指导!
我是要调用这个时间,不要手工的写

参考技术A select to_char(add_months(sysdate,-1),'yyyymm') from dual

是这个意思吗?
看你的month_id是什么类型的字段了,字符型的话,可能还要稍加改动
比如你传进去的是201303

select to_char(add_months(to_date('201303','yyyymm'),-1),'yyyymm') from dual追问

你好,我的意思是这个201303能直接调用,不用手工改

追答

select to_char(add_months(sysdate,-1),'yyyymm') from dual

那就用第一个,sysdate那个就行了呀

参考技术B 拼SQL,然后动态执行
str:='select * from TB_'||'201302';
execute immediate str;

如何在sql语句中显示Oracle索引

【中文标题】如何在sql语句中显示Oracle索引【英文标题】:How to show Oracle index was used in sql statement 【发布时间】:2014-07-28 18:29:24 【问题描述】:

我有一个关于 Oracle 索引的问题。 为部门表的部门名称属性创建索引。 证明该索引将在下面的 SQL 语句中使用。 select * from department_name='COMPUTER'

我创建了索引,但我不确定如何证明它,因为在 SQL 语句中看不到索引。

在部门(部门名称)上创建索引 dept.idx;

从 department_name='COMPUTER' 的部门中选择 *

如何证明?

【问题讨论】:

【参考方案1】:

使用解释计划,它会告诉你数据库计划使用什么来运行查询,

--Generate explain plan.
EXPLAIN PLAN FOR
select * from departments where department_name='COMPUTER';

--Display explain plan.
select * from table(dbms_xplan.display);

【讨论】:

谢谢@jonearles 我刚回来添加显示部分!【参考方案2】:
ALTER INDEX dept.idx MONITORING USAGE;

select * from departments where department_name='COMPUTER'

SELECT index_name,
   table_name,
   monitoring,
   used,
   start_monitoring,
   end_monitoring
FROM   v$object_usage
WHERE  index_name = 'IDX'
ORDER BY index_name;

【讨论】:

以上是关于ORACLE 我要在sql语句中使用变量,在后面的表里面使用该变量的主要内容,如果未能解决你的问题,请参考以下文章

在 Oracle PL/SQL 中重用绑定变量

oracle 中动态sql语句,表名为变量,怎么解

mssql中一个简单的模糊查询语句怎么写请教大侠们

我要用sql语句查询出MySql的各项监控指标...

oracle 中字段作为变量的语句怎么写

oracle 视图sql语句怎么写