尽管花了一个小时研究我似乎无法弄清楚如何正确定义变量然后在SQL中使用它 .
这是我到目前为止所做的:
DECLARE startDate DATE := to_date('03/11/2011', 'dd/mm/yyyy');
其中我得到了答复:
ORA-06550:第1行,第63列:PLS-00103:遇到以下其中一项时遇到符号“文件结束”:begin function package pragma procedure子类型使用表单当前游标详细信息:DECLARE startDate DATE:= to_date('03 / 11/2011','dd / mm / yyyy');第1行错误ORA-06550:第1行第63列:PLS-00103:遇到以下其中一项时遇到符号“文件结束”:begin function package pragma procedure子类型使用表单当前游标
我很想知道如何做这么简单的任务!
5 回答
你能试试这个:
请记住,Oracle的PL / SQL是 not SQL .
PL / SQL是一种过程语言 . SQL不是程序性的,但您可以定义"variables"用户可以通过"&var"语法输入(参见http://www.orafaq.com/node/515) .
这是一个旧帖子,但万一有人偶然发现(就像我刚才那样),你可以用CTE处理这个问题:
几乎相同的语法在SQL Server中工作(减去
date
特定的东西和from dual
) .您的变量声明是正确的 .
DECLARE
关键字用于定义PL / SQL块中的变量(其主体由BEGIN
和END;
分隔) . 你想如何使用这个变量?以下PL / SQL对我来说很好:
您还可以使用DEFINE语句来使用简单的字符串替换变量 . 它们适用于SQL / PLUS或TOAD等客户端 .
要完成您在Toad中尝试的操作,您根本不需要声明变量 . 只需在变量前面加上冒号,Toad会在执行查询时提示您输入变量的值 . 例如:
如果最初不起作用,请右键单击编辑器中的任意位置,并确保选中“提示替换变量” .
如果你真的想要像SQL Server处理变量的方式那样(或者你希望能够在SQL * Plus中做同样的事情),你可以按如下方式编写它:
但是,要在Toad中使用它,您需要通过“Execute as script”而不是典型的“Execute语句”命令来运行它 .