powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / XE: http apex нет инструментов по работе с базой
6 сообщений из 6, страница 1 из 1
XE: http apex нет инструментов по работе с базой
    #39259151
xMailer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите пож-та, достался хост (linux oracle) с установленным oracle xe 11.2, захожу http://ip:8080/apex и мне предлагается инструментарий по работе с Application Express - создание workspace, .... apex разработка, а где oracle админка по работе с базой. Мне фактически нужно пересоздать базу (кодировку кто устанавливал поставил AL32UTF8, мне для php-го проекта нужна CL8MSWIN1251), как мне создать базу? только вручную?

И общий вопрос: с 9-ой версии для проектов использую кодировку CL8MSWIN1251, это была рекомендация на каком-то русскоязычном ресурсе того времени, стоит ли переходить с AL32UTF8 на CL8MSWIN1251?
...
Рейтинг: 0 / 0
XE: http apex нет инструментов по работе с базой
    #39259158
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оставьте все as is. Просто укажите клиенту oracle, что хотите 1251 и будет счастье - данные в БД будут лежать в utf-8, а приложение будет отправлять и получать 1251.
...
Рейтинг: 0 / 0
XE: http apex нет инструментов по работе с базой
    #39259180
andrey_anonymousОставьте все as is.а как же шпротозамещение? толерантность к гомокодице подрывает KOI-ценности.
...
Рейтинг: 0 / 0
XE: http apex нет инструментов по работе с базой
    #39259203
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousПросто укажите клиенту oracle, что хотите 1251

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
C:\app\php-7.0.7-Win32-VC14-x64>chcp
Текущая кодовая страница: 1251

C:\app\php-7.0.7-Win32-VC14-x64>type test.php
<?php
  $conn = oci_connect('test', 'test', 'localhost:1530/orcl'
                      , 'CL8MSWIN1251'); -- заказываем кодировку клиента при установлении соединения

  echo "Кодировка БД:";
  $stid = oci_parse($conn, 'SELECT value FROM nls_database_parameters where parameter=\'NLS_CHARACTERSET\'');
  oci_execute($stid);

  while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
      foreach ($row as $item) {
          echo ($item !== null ? $item : "<null>") . "\n" ;
      }
  }

  echo "Данные в php - в кодировке 1251:\n";
  $stid = oci_parse($conn, 'SELECT * FROM t_nls');
  oci_execute($stid);

  while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
      foreach ($row as $item) {
          echo ($item !== null ? $item : "<null>");
      }
  }
?>

C:\app\php-7.0.7-Win32-VC14-x64>php -f test.php
Кодировка БД:AL32UTF8
Данные в php - в кодировке 1251:
Съешь ещё этих мягких французских булочек да выпей-ка чаю
C:\app\php-7.0.7-Win32-VC14-x64>



То же самое можно получить и без использования 4-го параметра oci_connect, но установив переменную окружения NLS_LANG:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
C:\app\php-7.0.7-Win32-VC14-x64>type test.php | find "oci_conn"
//  $conn = oci_connect('test', 'test', 'localhost:1530/orcl','CL8MSWIN1251');
  $conn = oci_connect('test', 'test', 'localhost:1530/orcl');

C:\app\php-7.0.7-Win32-VC14-x64>chcp
Текущая кодовая страница: 1251

C:\app\php-7.0.7-Win32-VC14-x64>set NLS_LANG=.cl8mswin1251

C:\app\php-7.0.7-Win32-VC14-x64>php -f test.php
Кодировка БД:AL32UTF8
Данные в php - в кодировке 1251:
Съешь ещё этих мягких французских булочек да выпей-ка чаю
C:\app\php-7.0.7-Win32-VC14-x64>

-- Повторим в другой кодировке, скажем, 866:
C:\app\php-7.0.7-Win32-VC14-x64>set NLS_LANG=.ru8pc866

C:\app\php-7.0.7-Win32-VC14-x64>chcp 866
Текущая кодовая страница: 866

C:\app\php-7.0.7-Win32-VC14-x64>php -f test.php
&#9577;юфшЁютър &#9524;&#9472;:AL32UTF8 -- Поскольку текст скрипта остался в 1251, то в 866 он отображается некорректно
&#9472;рээ&#8730;х т php - т ъюфшЁютъх 1251:
Съешь ещё этих мягких французских булочек да выпей-ка чаю -- тем не менее, данные из БД опять видны по-русски - но уже в кодировке 866
C:\app\php-7.0.7-Win32-VC14-x64>
...
Рейтинг: 0 / 0
XE: http apex нет инструментов по работе с базой
    #39259312
xMailer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ответы.
Так как база создана новая, но мне нужно было пару таблиц перетащить со старой, то решил все так .
Кстати, при тестах выяснилось, что явное указание charset=CL8MSWIN1251 в соединение для pdo_oci у меня не заработало (environments - Oracle Linux, apache, php 5.3, pdo_oci, Yii 1.x).
...
Рейтинг: 0 / 0
XE: http apex нет инструментов по работе с базой
    #39259510
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xMailerКстати, при тестах выяснилось, что явное указание charset=CL8MSWIN1251 в соединение для pdo_oci у меня не заработало (environments - Oracle Linux, apache, php 5.3, pdo_oci, Yii 1.x).
Что я делаю не так?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
-- до начала эксперимента переключил терминал на windows-1251, затем:
[oracle cli]$ uname -a
Linux ODI 2.6.39-400.17.1.el6uek.x86_64 #1 SMP Fri Feb 22 18:16:18 PST 2013 x86_64 x86_64 x86_64 GNU/Linux

[oracle cli]$ locale -a | grep 1251 -- ищу установленные локали с поддержкой 1251
be_BY.cp1251
bg_BG.cp1251
[oracle@ODIGettingStarted cli]$ export LC_ALL=bg_BG.cp1251

[oracle@ODIGettingStarted cli]$ export NLS_LANG= -- уберу для чистоты эксперимента

[oracle@ODIGettingStarted cli]$ cat test.php
<?php
$tns = "  
(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )
       ";
$db_username = "test";
$db_password = "test";
try{
    echo "php version is:".phpversion()."\n";
    $conn = new PDO("oci:dbname=".$tns.";charset=CL8MSWIN1251",$db_username,$db_password);

    $sth = $conn->prepare('SELECT * from nls_database_parameters where parameter=\'NLS_CHARACTERSET\'');
    $sth->execute();
    while($row = $sth->fetch(PDO::FETCH_OBJ)) {  
        echo "Database characterset is ". $row->VALUE."\n";  
    }

    $sth = $conn->prepare('SELECT * from t_nls');
    $sth->execute();
    while($row = $sth->fetch(PDO::FETCH_OBJ)) {  
        echo $row->STR."\n";  
    }
}catch(PDOException $e){
    echo ($e->getMessage());
}
?>

[oracle cli]$ ./php -f test.php 
php version is:5.3.29
Database characterset is AL32UTF8
Съешь ещё этих мягких французских булочек да выпей-ка чаю
[oracle cli]$ 

...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / XE: http apex нет инструментов по работе с базой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]