我正在尝试设置DBMS\U元数据的输出。将\u DDL获取到SQLPlus中的myRET\u VARbind变量。
我尝试了以下脚本。sql:
set pagesize 0
SET LONG 9999999
VARIABLE ret_val CLOB
VARIABLE lengthRet NUMBER
select DBMS_METADATA.GET_DDL('TABLE', 'MY_TABLE') into :ret_val from dual;
spool testClean.sql
print :ret_val;
spool off
/ -- I had to add this line because the script would never run otherwise
但我得到:
SP2-1504:无法打印未初始化的LOB变量“RET\u VAL”
我还尝试用一个BEGIN
/END
块来围绕RET\u VAL的赋值:
set pagesize 0
SET LONG 9999999
VARIABLE ret_val CLOB
VARIABLE lengthRet NUMBER
BEGIN
select DBMS_METADATA.GET_DDL('TABLE', 'MY_TABLE') into :ret_val from dual;
END;
spool testClean.sql
print :ret_val;
spool off
/
但是,当我尝试在SQLPlus中运行它时,会出现以下错误:
第5行的错误:ORA-06550:第5行,第1列:PLS-00103:遇到符号“SPOOL”
如何分配DBMS\U元数据的输出。将DDL获取到我的RET VAR?
在您发布的第一个代码中,您尝试在简单的SQL中使用select... to
模式,但它仅在PL/SQL上下文中这样工作。因此,使用块填充绑定变量是正确的。
正如@JanisBaiza所说,在匿名块之后需要一个/
;但不是在脚本末尾:
set pagesize 0
SET LONG 9999999
VARIABLE ret_val CLOB
BEGIN
select DBMS_METADATA.GET_DDL('TABLE', 'MY_TABLE') into :ret_val from dual;
END;
/
您可以直接调用该函数,只需使用select。。。从dual开始:
BEGIN
:ret_val := DBMS_METADATA.GET_DDL('TABLE', 'MY_TABLE');
END;
/
或者您可以使用执行
单行匿名块的简写:
exec :ret_val := DBMS_METADATA.GET_DDL('TABLE', 'MY_TABLE');
不清楚为什么要为此使用bind变量,因为您可以从普通SQL调用函数(不使用到
子句!):
set pagesize 0
SET LONG 9999999
spool testClean.sql
select DBMS_METADATA.GET_DDL('TABLE', 'MY_TABLE') from dual;
spool off
本文向大家介绍tensorflow 初始化未初始化的变量实例,包括了tensorflow 初始化未初始化的变量实例的使用技巧和注意事项,需要的朋友参考一下 今日在Stack Overflow上看到一个问如何只初始化未初始化的变量,有人提供了一个函数,特地粘贴过来共大家品鉴: 通过tf.global_variables()返回一个全局变量的列表global_vars, 然后以python列表解析式的
我在这里看到过类似的问题,如果这看起来像是重复的,我很抱歉,但是类似问题的答案对我没有帮助。所以我有一个方法,它是类的一部分。这里是: 错误表明变量min可能尚未初始化。我不明白这怎么可能是真的。我觉得变量不可能不在for循环之外初始化。请帮忙。谢谢
问题真的很简单,为什么这段代码不能工作: G++给出了以下错误: ./test.cpp:在函数“int main(int,char**)”中:./test.cpp:4:13:错误:未初始化的const“a”[-Fpermissive]const int a,b=std::tie(std::make_pair(1,2));^./test.cpp:4:42: 错误:无法将“std::pair&”类型的
我有以下Java代码: 但是,当我运行它时,它会抛出以下错误: 我在do之前初始化了变量。while 循环,并在 try. 中设置值。捕获循环。似乎尚未设置该变量。抱歉,如果这是一个相当基本的问题,但我似乎无法弄清楚。
为什么打印(或其他一些随机数)?什么是 printing?为什么它不是 (或 )?