sql – 在Select语句中声明和设置变量
发布时间:2020-12-12 16:10:34 所属栏目:MsSql教程 来源:网络整理
导读:我正在尝试写一个简单的查询,其中我声明一些变量,然后在Oracle中的select语句中使用它们.我以前在SQL Server中可以执行以下操作: DECLARE @date1 DATETIMESET @date1 = '03-AUG-2010'SELECT U.VisualIDFROM Usage u WITH(NOLOCK)WHERE U.UseTime @Date1 从搜
我正在尝试写一个简单的查询,其中我声明一些变量,然后在Oracle中的select语句中使用它们.我以前在SQL Server中可以执行以下操作:
DECLARE @date1 DATETIME SET @date1 = '03-AUG-2010' SELECT U.VisualID FROM Usage u WITH(NOLOCK) WHERE U.UseTime > @Date1 从搜索完成后,您将无法在Select语句中声明和设置变量.这是正确的还是我妈的东西? 解决方法从搜索完成后,您将无法在Select语句中声明和设置变量.这是正确的还是我错过的东西?在Oracle PL / SQL和SQL中有两种单独的语言,分别有两个引擎.您可以在PL / SQL中嵌入SQL DML,这将为您提供变量.如下面的匿名PL / SQL块.注意/结束不是PL / SQL的一部分,但是告诉SQL * Plus发送前一个块. declare v_Date1 date := to_date('03-AUG-2010','DD-Mon-YYYY'); v_Count number; begin select count(*) into v_Count from Usage where UseTime > v_Date1; dbms_output.put_line(v_Count); end; / 问题是,相当于您的T-SQL代码的块将无法正常工作: SQL> declare 2 v_Date1 date := to_date('03-AUG-2010','DD-Mon-YYYY'); 3 begin 4 select VisualId 5 from Usage 6 where UseTime > v_Date1; 7 end; 8 / select VisualId * ERROR at line 4: ORA-06550: line 4,column 5: PLS-00428: an INTO clause is expected in this SELECT statement 要将PL / SQL中的查询结果传递给匿名块,存储过程或存储函数,必须声明,打开并返回到调用程序. (超越这个问题的范围编辑:见Get resultset from oracle stored procedure) 连接到数据库的客户端工具可能拥有自己的绑定变量.在SQL * Plus中: SQL> -- SQL*Plus does not all date type in this context SQL> -- So using varchar2 to hold text SQL> variable v_Date1 varchar2(20) SQL> SQL> -- use PL/SQL to set the value of the bind variable SQL> exec :v_Date1 := '02-Aug-2010'; PL/SQL procedure successfully completed. SQL> -- Converting to a date,since the variable is not yet a date. SQL> -- Note the use of colon,this tells SQL*Plus that v_Date1 SQL> -- is a bind variable. SQL> select VisualId 2 from Usage 3 where UseTime > to_char(:v_Date1,'DD-Mon-YYYY'); no rows selected 注意上面是SQLPlus,可能不会(可能不会)在Toad PL / SQL开发人员等工作.从变量和exec开始的行是SQLPlus命令.它们不是SQL或PL / SQL命令.由于表为空,因此未选择行. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 批量将Access 2000 的mdb文件导入到SqlServer 2005中
- sql-server – SQL Server存储过程返回代码奇怪
- sql-server – 用于SQL Server数据库的归类是什么?
- linq – SingleOrDefault()在多个元素上引发异常
- SQL Server 五种提高 SQL 性能的方法
- sql-server – 使用GUI恢复数据库 – 要恢复的文件错误
- sql-server-2008 – 强制ASP.Net使用TCP / IP连接到SQL Ser
- SQLIOSim 模拟SQLServer的行为来测试IO性能
- SqlServer FOR XML PATH 将查询的每一行数据添加到一个字段
- sql – 从历史记录表中选择最新状态