Plsql 将整数转换为varchar并分配给变量pl/sql
我尝试分配一个变量,将整数值转换为字符串,并将其分配给另一个变量,然后稍后使用该变量以文本形式显示该值。有点不对劲,我得到一个“字符串长度约束必须在范围(1-32767)”错误Plsql 将整数转换为varchar并分配给变量pl/sql,plsql,oracle-sqldeveloper,Plsql,Oracle Sqldeveloper,我尝试分配一个变量,将整数值转换为字符串,并将其分配给另一个变量,然后稍后使用该变量以文本形式显示该值。有点不对劲,我得到一个“字符串长度约束必须在范围(1-32767)”错误 根据你最后的评论: 从DUAL中选择to_char(to_date(:number,'j'),'jsp');是 我将要使用的示例是将整数转换为单词 问题中实际显示的代码,看起来问题在于代码中右括号的位置。然后将两者都放在“to_char”的末尾,而示例的“to_date”后面有一个 因此,您的选择应为: SELECT t
根据你最后的评论: 从DUAL中选择to_char(to_date(:number,'j'),'jsp');是 我将要使用的示例是将整数转换为单词 问题中实际显示的代码,看起来问题在于代码中右括号的位置。然后将两者都放在“to_char”的末尾,而示例的“to_date”后面有一个 因此,您的选择应为:
SELECT to_char(to_date(num_docs,'j'),'jsp') INTO num_converted from dual;
字符串作为类型的演示和定义,至少在plsql中是这样
create table string_tab(column1 varchar2(20) );
insert into string_tab values('AABC');
declare
as_string string(20);
as_varchar varchar2(20);
begin
select column1 into as_string from string_tab;
dbms_output.put_line('as string=>' || as_string);
select column1 into as_varchar from string_tab;
dbms_output.put_line('as varchar=>' || as_varchar );
if as_string = as_varchar
then
dbms_output.put_line(' and they compare the same.');
else
dbms_output.put_line (' but they don''t compare the same.');
end if;
定义。以下内容摘自软件包sys.standard:
type VARCHAR2 is NEW CHAR_BASE;
subtype VARCHAR is VARCHAR2;
subtype STRING is VARCHAR2;
它用得不多,我想我从来没见过它。但它在plsql中是有效的,似乎不是有效的SQL类型 抛出错误的行是什么?什么是
字符串
数据类型。这不是内置的Oracle类型。这是您在其他地方定义的吗?我将字符串更改为VARCHAR(20),并在我的execute语句中得到它:command-BEGIN numdocs('USAM')中从第39行开始的错误;终止错误报告-ORA-12702:SQL函数ORA-06512:在第11行“SYSTEM.NUMDOCS”中使用的NLS参数字符串无效ORA-06512:在第1 12702行。00000-“SQL函数中使用的NLS参数字符串无效”*原因:NLS参数字符串中指定了未知参数名称或无效值。我将字符串更改为VARCHAR(20),并在我的execute语句中获取该值:从命令-BEGIN numdocs('USAM')的第39行开始的错误;终止错误报告-ORA-12702:SQL函数ORA-06512:在第11行“SYSTEM.NUMDOCS”中使用的NLS参数字符串无效ORA-06512:在第1 12702行。00000-“SQL函数中使用的NLS参数字符串无效”*原因:NLS参数字符串中指定了未知的参数名称或无效值。请不要在sys
或system
架构中创建对象。这会给你带来麻烦。在这些模式中,各种事情的工作方式不同,部分原因是它们被设计为没有任何用户编写的代码。您的下一个问题似乎是希望to_char
和to_date
都接受两个参数,但您要将三个参数传递给to_date
。我假设您想要to_char(to_date(num_docs,'j'),'jsp')
;这就是我将整数转换为单词的例子。
type VARCHAR2 is NEW CHAR_BASE;
subtype VARCHAR is VARCHAR2;
subtype STRING is VARCHAR2;