Как мне написать команды DB2 в z / OS?

var a1 = [1,2,3,6];
var a2 = [1,2,3,5];

function check(a, b) {
  return (a.length != b.length) ? false : 
  a.every(function(row, index) {
    return a[index] == b[index];
  });
}  

check(a1, a2);

////// ИЛИ ///////

var a1 = [1,2,3,6];
var a2 = [1,2,3,6];

function check(a, b) {
  return (a.length != b.length) ? false : 
  !(a.some(function(row, index) {
    return a[index] != b[index];
  }));
}  

check(a1, a2)
4
задан mustaccio 16 January 2019 в 11:52
поделиться

4 ответа

Вы говорите, что вручную выполняете команды на экране команд DB2 . В z / OS есть похожее, я думаю, меню в TSO. Введите команду DB2I в TSO, и вам будет предложено меню с опцией 7 Команды DB2 . Это ручной способ.

Если вы хотите запустить серию команд в пакетном режиме, то есть в сценарии, отправьте задание, выполнив команду DSN TSO.

//jobname JOB ...
//STEP01  EXEC PGM=IKJEFT01
//SYSTSPRT DD SYSYOUT=*
//SYSTSIN  DD *
 DSN SYSTEM(subsysid)
 -dis db(...) ....
... more commmands
/*

Вывод будет записан в DD SYSTSPRT.

Нет необходимости писать сценарии REXX, если вы не хотите программно интерпретировать результат команд.

НТН

0
ответ дан phunsoft 16 January 2019 в 11:52
поделиться

Самый простой способ - запускать команды в рамках программы управления терминалом TSO как пакетное задание.

Это может выглядеть примерно так (JOB-карта опущена):

 //*----------------------------------------------                 
 //DISDB    EXEC PGM=IKJEFT01,DYNAMNBR=20                          
 //*----------------------------------------------                 
 //STEPLIB   DD DISP=SHR,DSN=DB2.DSNLOAD                           
 //SYSPRINT DD SYSOUT=*                                            
 //SYSTSPRT DD DISP=SHR,DSN=YOUR.OUTPUT.DATASET                                            
 //SYSTSIN  DD *                                                   
   DSN SYSTEM(DBSYS)                                                
   -DISPLAY DB(DN*) SPACENAM(*) USE LOCKS LIMIT(*)                                                  
   -DISPLAY DB(DP*) SPACENAM(*) USE LOCKS LIMIT(*)                 
 //                                                                

Единственное, что SYSTSPRT будет содержать смесь ваших команд ввода, полученного результата и немного другой беспорядок, но это в основном ноль усилий для реализации.

0
ответ дан piet.t 16 January 2019 в 11:52
поделиться

Очень базовое решение REXX:

/* REXX*/                                                   
DB2NAME = 'DSN'        /* <== change db2name here */                                     
"DELSTACK"                                                  
QUEUE "-DISPLAY DB(DN*) SPACENAM(*) USE LOCKS LIMIT(*)"  
QUEUE "-DISPLAY DB(DP*) SPACENAM(*) USE LOCKS LIMIT(*)"
QUEUE "END"                                                 
X = OUTTRAP(IN.)                                            
"DSN SYSTEM("!!DB2NAME!!")"                                 
X = OUTTRAP(OFF)                                            
DO I = 1 TO IN.0                                            
  SAY IN.I                                                  
END                                                         
0
ответ дан Claude Birtz 16 January 2019 в 11:52
поделиться

Вы можете написать сценарий rexx, чтобы установить соединение с подсистемой Db2, а затем выполнить ту же команду. Позвольте мне найти образец и отправить вам ... это команда, которую вы можете использовать для соединения с DB2 из REXX ADDRESS DSNREXX ' СОЕДИНИТЬ '' DB01 '

0
ответ дан Neeraj Kumar 16 January 2019 в 11:52
поделиться