在C和C++中,包括ctype h和可以测试的各种函数可以迅速的给出答案。
在SQL或者PL/SQL中没有直接执行这些测试的;但是,我们可以在PL/SQL中利用java.lang.Character类来模仿一些功能。
你可以利用这些代码来编辑和装载这个类:
javac ctype.java
loadjava -user scott/tiger -oci8 -resolve ctype
Java的 java.lang.Character 类包含了一些测试,这些测试可以为Java中的字符值域任何字符工作。
当Oracle映射SQL数据类型到Java数据类型的时候,它将自动更改数据库字符设置或者改变字符设置到UCS-2中。通过构造已传递值周围的java.lang对象,不同的字符分类函数可以应用。
为了完成这个功能,定义一个Java包装类,它可以接受一个串,第一个字符并返回静态测试的结果:
public class ctype
{
public static int isalnum(String s)
{
return Character.isLetterOrDigit(s.charAt(0))
? 1 : 0;
}
public static int isalpha(String s)
{
return Character.isLetter(s.charAt(0))
? 1 : 0;
}
public static int iscntrl(String s)
{
return Character.isISOControl(s.charAt(0))
? 1 : 0;
}
public static int isdigit(String s)
{
return Character.isDigit(s.charAt(0))
? 1 : 0;
}
public static int isspace(String s)
{
return Character.isWhitespace(s.charAt(0))
? 1 : 0;
}
public static int islower(String s)
{
return Character.isLowerCase(s.charAt(0))
? 1 : 0;
}
public static int isupper(String s)
{
return Character.isUpperCase(s.charAt(0))
? 1 : 0;
}
}