2014-02-02 2 views
1

Я хочу читать данные из базы данных. данные находятся на арабском языке. набор символов моей базы данных - AL32UTF8. Когда я пытаюсь извлечь данные, я получаю «????» пожалуйста ответ, как решить эту проблему это кодчтение арабских данных из базы данных Oracle в java

public static void main(String[] args) { 
// TODO Auto-generated method stub 
String url = "jdbc:oracle:thin:@localhost:1521:xe"; 
String username = "hr"; 
String password = "hr"; 
String sql = "SELECT WORDS_URDU FROM FINALLY WHERE DFFGG=430"; 
Connection connection; 
try { 
connection = DriverManager.getConnection(url, username, password); 
Statement statement = connection.createStatement(); 
ResultSet rs = statement.executeQuery(sql); 
while(rs.next()) 
{ 
System.out.println(rs.getString(1)); 
} 
//System.out.println(statement.execute(sql)); 
connection.close(); 
} catch (SQLException e) { 
System.err.println(e); 
} 
} 

ответ

1

Первое, что нужно определить, являются ли данные в таблице правильно хранится. Если это так, проблема с отображением.

Проверьте, установлено ли значение переменной NLS_LANG на стороне клиента, на котором запущена программа.

Убедитесь, что ваша программа терминала, в которой работает ваша программа, может отображать требуемые символы.

Чтобы определить, повреждено ли содержимое базы данных, вы можете попробовать выполнить 'select dump (words_urdu), из которого, наконец, где dffgg = 430;'. Это покажет фактические символы, которые хранятся в базе данных. Если переменная среды NLS_LANG не была установлена ​​правильно во время ввода данных, данные могут быть повреждены в базе данных.

Надеюсь, что это поможет.

+0

Да, данные хранятся правильно. я проверил его, выполнив инструкцию select – Khaadija

Смежные вопросы