首页 > 数据库 >[20240312]sqlplus define数据类型问题.txt

[20240312]sqlplus define数据类型问题.txt

时间:2024-03-13 21:24:03浏览次数:27  
标签:20240312 -- dbid 数据类型 sqlplus SCOTT book select define

[20240312]sqlplus define数据类型问题.txt

--//编写sql脚本遇到的问题,通过例子说明。

1.环境:
SCOTT@book> @ ver1 111
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
--//定义参数1为111

2.问题再现:

SCOTT@book> define 1
DEFINE 1               = "111" (CHAR)
--//你可以发现参数1定义为char类型,也就是sqlplus即使你定义类型是数字,也是当作字符类型。

SCOTT@book> define a=1111111
SCOTT@book> define a
DEFINE A               = "1111111" (CHAR)
--//即使定义a=1111111,sqlplus还是把它当作字符类型。

SCOTT@book> column dbid new_value a;
SCOTT@book> select dbid from v$database;
      DBID
----------
1337401710

SCOTT@book> define a
DEFINE A               = 1337401710 (NUMBER)

--//通过这样的方式转换number类型。

4.继续测试:
SCOTT@book> spool b&a
--//没有报错!!
SCOTT@book> spool off

SCOTT@book> select inst_id dbid from gv$database;
      DBID
----------
         1

SCOTT@book> define a
DEFINE A               =          1 (NUMBER)

SCOTT@book> spool b&a
SP2-0768: Illegal SPOOL command
Usage: SPOOL { <file> | OFF | OUT }
where <file> is file_name[.ext] [CRE[ATE]|REP[LACE]|APP[END]]

SCOTT@book> prompt b&a
b         1

SCOTT@book> select 'b&a' from dual ;
'B1'
-----------
b         1

--//可以发现前面存在空格。前面使用dbid没有错,因为长度已经超过9个字符。

SCOTT@book> select dbid from v$database;
      DBID
----------
1337401710

SCOTT@book> select 'b&a' from dual ;
'B133740171
-----------
b1337401710

--//我编写sql代码时,使用spool时遇到这个问题。
--//结果方法很简单转换成字符类型就可以了。

SCOTT@book> select to_char(inst_id) dbid from gv$database;
DBID
----------------------------------------
1

SCOTT@book> prompt b&a
b1


--//补充说明一下假设参数带双引号,要再使用双引号转义一下,例子:

> @ ver1  "use_concat(@""SEL$1"" 8 OR_PREDICATES(2))"
> define 1
DEFINE 1               = "use_concat(@"SEL$1" 8 OR_PREDICATES(2))" (CHAR)

--//单引号没有这个问题。
> @ ver1  "use_concat(@'SEL$1' 8 OR_PREDICATES(2))"
> define 1
DEFINE 1               = "use_concat(@'SEL$1' 8 OR_PREDICATES(2))" (CHAR)

标签:20240312,--,dbid,数据类型,sqlplus,SCOTT,book,select,define
From: https://www.cnblogs.com/lfree/p/18071545

相关文章

  • 关于Sql server数据类型HierarchyID 数据类型用法和递归显示完整路径
    SQLServer2008版本之后的新类型HierarchyID不知道大家有没有了解,该类型作为取代id,parentid的一种解决方案,让人非常惊喜。官方给的案例浅显易懂,但是没有实现我想要的基本功能,树形结构中完整名称路径的展示。本文末尾是一个完整路径的样例,需要更多基本操作可以参考文末微软链......
  • day 06-1 数据类型(列表)
    day06列表常见的数据类型int,整数类型(整型)bool,布尔类型str,字符串类型list,列表类型:用于储存一些数据的容器(有序&可修改),动态的容器tuple,元组类型:用于储存一些数据的容器(有序&不可修改),固定的容器dict,字典类型set,几何类型float,浮点类型(浮点型)1列表列表(list),是一......
  • 实验1 C语言开发环境使用和数据类型、运算符、表达式
    1#include<stdio.h>2intmain()3{4printf("o\n");5printf("<H>\n");6printf("II\n");78return0;9}#include<stdio.h>intmain(){printf("oo\n"......
  • Python数学建模-2.2Python基本数据类型
    各位小伙伴大家好,今天开始学习司守奎老师的《数学建模算法与应用》啦,我也会边学习边与大家分享书中的内容,希望与大家共同进步哦Python中的基本数据类型主要包括以下几种:数字(Numbers)整型(int):正或负整数,没有限制大小。例如:100,-8080,0。浮点型(float):浮点数,即带有小数点的数字。......
  • 实验1 C语言开发环境使用和数据类型、运算符、表达式
    task1点击查看代码#include<stdio.h>intmain(){printf("o\n"); printf("<H>\n"); printf("II\n"); printf("o\n"); printf("<H>\n"); printf("II\n"); system("......
  • YC256B [ 20240312 CQYC省选模拟赛 T2 ] count
    题意对于一个长度为\(n\)的排列\(P\)。你需要求出所有满足条件的长度为\(k\)的数列\(A\)的个数。\(A\)单调不减且\(1\leA_i\len\)\(\min_{j=1}^{A_1}P_j=\min_{j-1}^{A_i}P_j\)求出对于\(P_1=x\)的所有排列的满足条件的\(A\)的个数。Sol......
  • 20240312
    我的心理素质太差了!又破防了!晚自习看到yyn在写点什么,好奇地凑过去看,兔子也看到了,但是他不理解「fjb」这个名词,问我是什么。我不相信兔子这种接触成人内容这么多的人还不知道,我就说了一个「sextoy」(当然我不知道这么说对不对,没准又要被某位同学锐评了),兔子没理解到,我给他说自己......
  • Java 包装类:原始数据类型与迭代器
    JavaIteratorIterator接口提供了一种迭代集合的方法,即顺序访问集合中的每个元素。它支持hasNext()和next()方法,用于检查是否存在下一个元素以及获取下一个元素。获取Iterator可以使用集合的iterator()方法获取Iterator实例://导入ArrayList类和Iterator类impo......
  • 20240312打卡
    第三周第一天第二天第三天第四天第五天第六天第七天所花时间3h5h代码量(行)274256博客量(篇)11知识点了解完成AndroidStudio中原生数据库SQlite简单的CRUD本地数据库连接到远程数据库SQLite在Android应用中与远程MySQL数据......
  • java8中,Arrays.sort()默认是升序的,对于基本数据类型,使其降序怎么实现
    对于引用数据类型,自定义比较器对象,实现Comparator接口/Comparable接口对于基本数据类型,自定义比较器对象,将基本数据类型转换成对应的包装类型即可但是这样写是错误的,importjava.util.Arrays;importjava.util.Comparator;publicclassSortExample{publicstatic......