请帮助我,这很令人不安,我试图插入一个简单的换行符.(视窗)
我的PL/SQL代码是:
DECLARE str varchar2(32767);
BEGIN str := 'A Text' + char(13) + char(10) + 'Next text';
INSERT INTO atable (...) (str);
END;
Run Code Online (Sandbox Code Playgroud)
我总是得到错误:
PLS-00222此范围内不存在名称为"CHAR"的函数
我有以下情况:
CREATE OR REPLACE FUNCTION GET_CURSOR_PIPELINE(placeholder IN NUMBER)
RETURN MY_RECORD_TYPE PIPELINED IS
TYPE CURSOR_TYPE IS REF CURSOR;
myCursor CURSOR_TYPE;
TYPE RECORD_TYPE IS RECORD(
record_id NUMBER,
firstname VARCHAR(50)
);
resultSet RECORD_TYPE;
BEGIN
OPEN myCursor FOR
SELECT 1, 'Scott' FROM DUAL
UNION
SELECT 2, 'Tiger' FROM DUAL;
IF (myCursor IS NOT NULL) THEN
LOOP
FETCH myCursor INTO resultSet;
EXIT WHEN myCursor%NOTFOUND;
PIPE ROW (MY_RECORD_OBJ(
resultSet.record_id,
resultSet.firstname
));
END LOOP;
CLOSE myCursor;
END IF;
END GET_CURSOR_PIPELINE;
Run Code Online (Sandbox Code Playgroud)
我的生产代码和上面的示例之间的唯一区别是我需要从真实表中获取大约20个字段,而不仅仅是来自DUAL的2个字段.
我想避免使用锅炉代码,我必须明确列出所有涉及的字段.上面的函数工作正常,但我必须定义所有涉及的字段3次.该拳的时间,当我将返回类型定义.
CREATE …Run Code Online (Sandbox Code Playgroud) 如何编译我目前在Oracle表中保存的PL/SQL源代码?(我正在从USER_SOURCE视图中复制源代码,然后我将删除这些对象,并希望从我保存的副本中恢复.)
我确信有一种简单的方法,但我只是没有输入正确的搜索条件.
我有一个xlsx文件sample.xlsx存储在一个远程目录中,大小约为1,699 KB.我已经尝试了两个流行的PL/SQL包(UTL_COMPRESS和AS_ZIP),它们将它们压缩成gzip和zip.
使用下面的代码AS_ZIP,我已将文件压缩为1,619 KB:
declare
g_zipped_blob blob;
l_file_name varchar2(100) := 'sample.xlsx';
l_directory varchar2(100) := 'EXT_TAB_DATA';
begin
as_zip.add1file( g_zipped_blob, l_file_name, as_zip.file2blob(l_directory, l_file_name));
as_zip.finish_zip( g_zipped_blob );
as_zip.save_zip( g_zipped_blob, l_directory, 'my2.zip' );
dbms_lob.freetemporary( g_zipped_blob );
end;
Run Code Online (Sandbox Code Playgroud)
使用下面的代码(取自原始帖子)UTL_COMPRESS,我将文件压缩为1,618 KB:
DECLARE
in_filename VARCHAR2(100) := 'sample.xlsx';
l_directory varchar2(100) := 'EXT_TAB_DATA';
src_file BFILE;
v_content BLOB;
v_blob_len INTEGER;
v_file utl_file.file_type;
v_buffer RAW(32767);
v_amount BINARY_INTEGER := 32767;
v_pos INTEGER := 1;
BEGIN
src_file …Run Code Online (Sandbox Code Playgroud) 我有一个像这样的Oracle SQL脚本:
在Oracle SQL中有类似的东西吗?有点像在批处理文件中暂停,你必须打空间继续运行,但我可以取消它
我在Oracle数据库中执行了以下代码,但遇到了视图名称不存在的错误.任何人都可以看一下吗?
Declare
Stmt varchar2(2000);
Var number;
Begin
Stmt:='create or replace view emp_dept_v as select * from emp';
Execute immediate stmt;
Select count(*) into var from emp_dept_v;
Dbms_output. Put_line(var);
End;
Run Code Online (Sandbox Code Playgroud)
我知道DDL语句是自动提交的,但在这种情况下,我必须在execute immediate语句之后添加一个commit语句来解决问题.
如何从每列中删除空值这是示例
Column 1 Column 2 column 3 column 4
a 1 null null
b 0 null null
c 1 null null
a null 0 null
b null 1 null
c null 0 null
a null null 1
b null null 1
c null null 0
Run Code Online (Sandbox Code Playgroud)
我希望它看起来像这样
Column 1 Column 2 column 3 column 4
a 1 0 1
b 0 1 1
c 1 0 0
Run Code Online (Sandbox Code Playgroud)
这可能吗?您可能会看到图像前后的附加图片.
例如,具有CIDR的IPv6地址:2620:0:2d0:200 :: 7/32输出起始范围:2620:0:0:0:0:0:0:0:0结束范围:2620:0:ffff:ffff: ffff:ffff:ffff:ffff
如何用PL / SQL计算?
我是PL/SQL的新手,所以我试图在SQL开发人员中执行一些PL/SQL程序.但它会引发错误,即使我的程序是正确的.是否需要更改我的SQL Developer设置才能执行数学运算?
我想要执行这个程序.
DECLARE
num number(5):= 20;
num1 number(5):= 80;
sum number(5);
BEGIN
sum:= num + num1;
dbms_output.put_line('result='||sum);
END;
Run Code Online (Sandbox Code Playgroud)
错误是:从行开始出错:命令中的2 -
Error report -
ORA-06550: line 7, column 36:
PLS-00103: Encountered the symbol ")" when expecting one of the following:
(
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
Run Code Online (Sandbox Code Playgroud) 首先,我是PL/SQL的相对新手,所以我可能会遗漏一些微不足道的东西.
这是一段代码,我遇到运行问题 -
FOR indx IN 1 .. arr.COUNT
LOOP
SELECT COUNT(*), ca.cities
INTO tmp_count, affected_cities
FROM PDB.utilities ca
WHERE (ca.app_city_id = cityid
AND ca.app_plumbing_id = arr(indx))
AND( BITAND(options1,2) = 2
OR BITAND(options1,1) = 1)
GROUP BY ca.cities;
IF tmp_count >=0 THEN
-- We have an affected app so collect metrics
IF plumbings(indx_mv) ='0Ci30000000GsBN' THEN
count_wrigley:= count_wrigley+tmp_count;
END IF;
counter:= counter+tmp_count; --overall count.
tmp_count:=0;
affected_cities:=null;
END IF;
EXCEPTION -- error thrown here !
WHEN NO_DATA_FOUND THEN
CONTINUE;
END;
END LOOP; …Run Code Online (Sandbox Code Playgroud)