Redian新闻
>
老板的无理要求!(希望熟悉Oracle的朋友指点)
avatar
老板的无理要求!(希望熟悉Oracle的朋友指点)# Database - 数据库
w*y
1
老板对数据库迷恋,尤其对oracle迷恋,别的DB都嗤之以鼻,真是搞不懂他。
现在老板要求在Oracle把一个Number类型,转变成一个IP地址,而且不能用JDBC,ODBC。
只能用QUERY。
其实我认为就是先把Number类型转换成Binary类型,再按8位分组,再把8位转变成NUMBER

其实如果不用Oracle, 我用MYSQL可以写成:
SELECT CONCAT(CONV(SUBSTRING(BIN(ip_src), 1, 8), 2, 10),'.',
CONV(SUBSTRING(BIN(ip_src), 9, 8), 2, 10),'.',
CONV(SUBSTRING(BIN(ip_src), 17, 8), 2, 10),'.',
CONV(SUBSTRING(BIN(ip_src), 25, 8), 2, 10))
FROM header;
但在ORACLE下就不知道怎么办了(没有BIN,CONV,CONCAT函数),希望专家指点!谢谢!
avatar
y*i
2

现在老板要求在Oracle把一个Number类型,转变成一个IP地址,而且不能用JDBC,ODBC。
其实我认为就是先把Number类型转换成Binary类型,再按8位分组,再把8位转变成NUMBER

Did you investigate before you say there is no such thing in Oracle.
I guess you don't like Oracle because you have little experiences with it :P
But it's nice to know more, isn't it?
tochar(): Convert from number to string
substring: same as in mysql
concatenation: ||
you can search on google for more details.

【在 w*********y 的大作中提到】
: 老板对数据库迷恋,尤其对oracle迷恋,别的DB都嗤之以鼻,真是搞不懂他。
: 现在老板要求在Oracle把一个Number类型,转变成一个IP地址,而且不能用JDBC,ODBC。
: 只能用QUERY。
: 其实我认为就是先把Number类型转换成Binary类型,再按8位分组,再把8位转变成NUMBER
: 。
: 其实如果不用Oracle, 我用MYSQL可以写成:
: SELECT CONCAT(CONV(SUBSTRING(BIN(ip_src), 1, 8), 2, 10),'.',
: CONV(SUBSTRING(BIN(ip_src), 9, 8), 2, 10),'.',
: CONV(SUBSTRING(BIN(ip_src), 17, 8), 2, 10),'.',
: CONV(SUBSTRING(BIN(ip_src), 25, 8), 2, 10))

avatar
j*i
3

现在老板要求在Oracle把一个Number类型,转变成一个IP地址,而且不能用JDBC,ODBC。
其实我认为就是先把Number类型转换成Binary类型,再按8位分组,再把8位转变成NUMBER

to_number(),to_char(),substr(),||,:),easy bah.

【在 y****i 的大作中提到】
:
: 现在老板要求在Oracle把一个Number类型,转变成一个IP地址,而且不能用JDBC,ODBC。
: 其实我认为就是先把Number类型转换成Binary类型,再按8位分组,再把8位转变成NUMBER
: !
: Did you investigate before you say there is no such thing in Oracle.
: I guess you don't like Oracle because you have little experiences with it :P
: But it's nice to know more, isn't it?
: tochar(): Convert from number to string
: substring: same as in mysql
: concatenation: ||

avatar
k*s
4

现在老板要求在Oracle把一个Number类型,转变成一个IP地址,而且不能用JDBC,ODBC。
其实我认为就是先把Number类型转换成Binary类型,再按8位分组,再把8位转变成NUMBER


【在 w*********y 的大作中提到】
: 老板对数据库迷恋,尤其对oracle迷恋,别的DB都嗤之以鼻,真是搞不懂他。
: 现在老板要求在Oracle把一个Number类型,转变成一个IP地址,而且不能用JDBC,ODBC。
: 只能用QUERY。
: 其实我认为就是先把Number类型转换成Binary类型,再按8位分组,再把8位转变成NUMBER
: 。
: 其实如果不用Oracle, 我用MYSQL可以写成:
: SELECT CONCAT(CONV(SUBSTRING(BIN(ip_src), 1, 8), 2, 10),'.',
: CONV(SUBSTRING(BIN(ip_src), 9, 8), 2, 10),'.',
: CONV(SUBSTRING(BIN(ip_src), 17, 8), 2, 10),'.',
: CONV(SUBSTRING(BIN(ip_src), 25, 8), 2, 10))

avatar
k*s
5

现在老板要求在Oracle把一个Number类型,转变成一个IP地址,而且不能用JDBC,ODBC。
其实我认为就是先把Number类型转换成Binary类型,再按8位分组,再把8位转变成NUMBER


【在 w*********y 的大作中提到】
: 老板对数据库迷恋,尤其对oracle迷恋,别的DB都嗤之以鼻,真是搞不懂他。
: 现在老板要求在Oracle把一个Number类型,转变成一个IP地址,而且不能用JDBC,ODBC。
: 只能用QUERY。
: 其实我认为就是先把Number类型转换成Binary类型,再按8位分组,再把8位转变成NUMBER
: 。
: 其实如果不用Oracle, 我用MYSQL可以写成:
: SELECT CONCAT(CONV(SUBSTRING(BIN(ip_src), 1, 8), 2, 10),'.',
: CONV(SUBSTRING(BIN(ip_src), 9, 8), 2, 10),'.',
: CONV(SUBSTRING(BIN(ip_src), 17, 8), 2, 10),'.',
: CONV(SUBSTRING(BIN(ip_src), 25, 8), 2, 10))

avatar
k*s
6

现在老板要求在Oracle把一个Number类型,转变成一个IP地址,而且不能用JDBC,ODBC。
其实我认为就是先把Number类型转换成Binary类型,再按8位分组,再把8位转变成NUMBER


【在 w*********y 的大作中提到】
: 老板对数据库迷恋,尤其对oracle迷恋,别的DB都嗤之以鼻,真是搞不懂他。
: 现在老板要求在Oracle把一个Number类型,转变成一个IP地址,而且不能用JDBC,ODBC。
: 只能用QUERY。
: 其实我认为就是先把Number类型转换成Binary类型,再按8位分组,再把8位转变成NUMBER
: 。
: 其实如果不用Oracle, 我用MYSQL可以写成:
: SELECT CONCAT(CONV(SUBSTRING(BIN(ip_src), 1, 8), 2, 10),'.',
: CONV(SUBSTRING(BIN(ip_src), 9, 8), 2, 10),'.',
: CONV(SUBSTRING(BIN(ip_src), 17, 8), 2, 10),'.',
: CONV(SUBSTRING(BIN(ip_src), 25, 8), 2, 10))

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。