如何解决提取程序以在PL / SQL中查找阶乘时出现PLS-00103错误
def get_queryset(self):
它给了我一个“ pls-00103:在遇到以下情况之一时遇到了符号“&”:”错误
这有什么问题?
解决方法
SQL Live不是SQL * Plus。 “&”号用于SQL * Plus替换变量,在SQL Live中不起作用。您需要先编辑匿名块并在每次运行前提供一个值。
,在这里我真的看不到需要pl / sql循环。您可以使用递归查询很好地做到这一点:
with cte (n,fac) as (
select ? n,1 fac from dual
union all
select n - 1,fac * n from cte where n > 1
)
select max(fac) as result from cte
问号代表查询的参数,即您要计算其阶乘的数字。
Demo on DB Fiddle :例如,当给定参数4
时,查询返回:
<pre>
| RESULT |
| -----: |
| 24 |
</pre>
...是计算1 * 2 * 3 * 4
的结果。
您也可以这样表达:
with cte (n,fac) as (
select 4 n,4 fac from dual
union all
select n - 1,fac * (n - 1) from cte where n > 1
)
select max(fac) as result from cte
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。