w*********y 发帖数: 28 | 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函数),希望专家指点!谢谢! | y****i 发帖数: 5690 | 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))
| j**i 发帖数: 419 | 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: ||
| k******s 发帖数: 272 | 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))
| k******s 发帖数: 272 | 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))
| k******s 发帖数: 272 | 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))
|
|