gpt4 book ai didi

oracle - 如何查找表中长列的长度

转载 作者:行者123 更新时间:2023-12-04 02:17:23 27 4
gpt4 key购买 nike

我在名为 Files 的表中有一个名为 FileSize 的 LONG 列。

为了实现目标,我做了以下工作:

我编写了这个 PL/SQL 脚本来查找大小

declare 
long_var LONG:=0;
begin
dbms_output.put_line(length(long_var));
execute immediate 'SELECT FILESIZE INTO long_var FROM FILES';
dbms_output.put_line(length(long_var));
end;

但它抛出一个错误:

ORA-00905: missing keyword
ORA-06512: at line 5

当我在下面给出的链接上看到以下内容时,我正在执行以下操作: http://www.techonthenet.com/oracle/questions/long_length.php

有人可以建议我做错了什么,因为我无法识别我缺少的关键字

谢谢。

最佳答案

在此上下文中,您不需要立即执行。

DECLARE 
long_var long:=0;
BEGIN
DBMS_OUTPUT.PUT_LINE(LENGTH(long_var));
SELECT filesize INTO long_var FROM files;
DBMS_OUTPUT.PUT_LINE(LENGTH(long_var));
END;
/

EXECUTE IMMEDIATE 从 PL/SQL 代码运行独立的 SQL 语句。它无法向您的代码返回任何内容。您使用的语句不是有效的 SQL,因此您会收到 ORA-00905。它是有效的 PL/SQL 代码,因此在删除 EXECUTE IMMEDIATE 后可以按预期工作。

编辑

针对问题的后续代码:要对多行执行此操作,您可以使用此代码

DECLARE 
CURSOR C1 IS
SELECT filesize FROM files;
BEGIN
FOR files IN c1
LOOP
DBMS_OUTPUT.PUT_LINE(LENGTH(files.filesize));
END LOOP;
END;
/

关于oracle - 如何查找表中长列的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5430055/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com