在表列中,我有这个值:
DV-2011-01-000004(数据类型为varchar2)
我怎样才能得到字符串'000004'的一部分?在t-sql中他们有这个right()函数,但是在PL SQL中,我似乎不能像t-sql中的right()那样找到一个函数.
谢谢您的帮助.
我们有一个表格,文件保存为BLOB
我写了一个代码,通过电子邮件将这些文件作为附件!
到目前为止一切正常,但文件(EXCEL,PDF,......有什么)是程序无法读取的,只有文本文件和excel会打开,但是在一些错误消息之后,PDF根本都没有被打开!
这是有问题的代码的一部分!
utl_smtp.write_data( l_connection, '--'|| l_boundary || utl_tcp.crlf);
utl_smtp.write_data( l_connection, 'Content-Type: application/octet-stream' || utl_tcp.crlf);
utl_smtp.write_data( l_connection, 'Content-Disposition: attachment; filename="' || V_NAME || '"' || utl_tcp.crlf);
utl_smtp.write_data( l_connection, 'Content-Transfer-Encoding: base64' || utl_tcp.crlf );
utl_smtp.write_data( l_connection, utl_tcp.crlf );
v_length := dbms_lob.getlength(V_BLOB_CONTENT);
while v_offset < v_length loop
dbms_lob.read( V(i).BLOB_CONTENT, v_buffer_size, v_offset, v_raw );
utl_smtp.write_raw_data( l_connection, utl_encode.base64_encode(v_raw) );
utl_smtp.write_data( l_connection, utl_tcp.crlf );
v_offset := v_offset + v_buffer_size;
end loop while_loop;
utl_smtp.write_data( l_connection, utl_tcp.crlf );
Run Code Online (Sandbox Code Playgroud)
有什么建议?
我正在使用Oracle 10 g和PL/SQL Developer进行开发.我已经从Net Manager测试过可以连接数据库了,但是当我尝试连接PL/SQL Developer时出现了我不明白的问题:
ORA-12154: TNS:could not resolve the connect identifier specified
Run Code Online (Sandbox Code Playgroud)
我已经搜索了问题的解决方案,但仍然无法解决.有什么建议?

我现在正在与 PLSQL 开发人员打交道,这是我第一次。我发现这种查询
select * from tableA, tableB
where tableA.field1 = tableB.field1(+)
Run Code Online (Sandbox Code Playgroud)
我想知道(+)查询中的功能。各位大侠能不能解释一下?
我想动态地在程序体内创建游标,我也必须使用for循环而不是代码.我做了动态光标,但我不能使用for循环.
PROCEDURE myprocedure
AS
LV_TEST_CUR SYS_REFCURSOR;
LV_QUERY VARCHAR2(200);
LV_DATE DATE;
BEGIN
LV_QUERY:='select sysdate as mydate from dual';
OPEN LV_TEST_CUR FOR LV_QUERY;
/*FOR CUR_VAR IN LV_TEST_CUR
LOOP
dbms_output.put_line(CUR_VAR.mydate);
end LOOP;
*/
LOOP
FETCH LV_TEST_CUR INTO LV_DATE;
EXIT
WHEN LV_TEST_CUR%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(LV_DATE);
END LOOP;
CLOSE LV_TEST_CUR;
END myprocedure;
Run Code Online (Sandbox Code Playgroud)
如果我使用注释代码(for循环),我会收到错误
PLS-00221:不是程序或未定义.
是否可以在动态游标中使用for循环?
Oracle中为什么有3个逻辑不同对视图Ñ憩大号anguage小号upport?
我可以理解需要区分会话和数据库 - 允许客户端自定义设置。
Session 与 Instance 呢?
我运行了一个查询来比较它们之间的值,这是结果(我注意到 NLS_DATABASE_SETTINGS 有更多的参数,其他的所有参数加上更多,因此我将它作为我的起点进行外连接):
SELECT
db.parameter as parameter,
db.value as database_value,
s.value as session_value,
i.value as instance_value
FROM
nls_database_parameters db
LEFT JOIN
nls_session_parameters s
ON s.parameter = db.parameter
LEFT JOIN
nls_instance_parameters i
ON i.parameter = db.parameter
ORDER BY parameter
Run Code Online (Sandbox Code Playgroud)

我正在尝试深入挖掘并解决我的 pl/sql 开发人员客户端的问题,单独无法显示希伯来语字符。公司里的其他人都是。
更新:按照我在此处发布的解决方案,解决了希伯来语中显示字符的问题(这不是这里的问题)。
我在哪里检查oracle pl / sql developer的时区。有人可以帮忙吗
我想监视 Oracle SQL Developer Tool 上的活动日志,使用F8我获取 SQL 历史记录的键。
我想要用户会话数据,例如谁(用户)执行了哪个查询或 GUI 中的任何操作。
我正在尝试为尝试使用 SOAP Web 服务的函数调试 PL/SQL 上的“HTTP 请求失败”错误。建议使用 get_detailed_sqlerrm 来获取错误消息的详细信息,但是当我尝试运行建议的查询时,它会抛出“无效的 SQL 语句”错误。
我的查询:
UTL_HTTP.get_detailed_sqlerrm
RETURN VARCHAR2;
Run Code Online (Sandbox Code Playgroud)
我使用的是 PL/SQL Developer IDE,数据库是 Oracle 11g。
这是场景:我有两个表部门和员工.当我从表中选择一个不存在于该表中的列时,它会按预期抛出错误.但是,当我使用子查询并再次从同一个表中选择相同的列时,它正在工作.我不明白它如何可以忽略我的错误.
create table department
( DEPT_ID NUMBER(2),
DEPT_NAME VARCHAR2(6) );
insert into department values(1,'ch');
create table employee
( EMP_ID NUMBER(2),
EMP_NAME VARCHAR2(6),
EMP_DEPT_ID NUMBER(2)
);
insert into employee values(0,'ch',1);
--getting error for below (ORA-00904: "DEPT_ID": invalid identifier)
select dept_id
from employee;
-- not getting any error and can see the output for below sql statement. How it can consider invalid column for employee table dept_id in this query.
select *
from department
where dept_id in
(
-- Incorrect column name …Run Code Online (Sandbox Code Playgroud)