Issue in installing IBM JDK on CENTOS Linux
by Frederick Tybalt on Nov.29, 2019, under Uncategorized
I had a a issue in installing the IBM JDK on a new CENTOS Linux box.
Error message:
./ibm-java-linux-sdk-8.0-5.41.bin Preparing to install... Extracting the JRE from the installer archive... Unpacking the JRE... Extracting the installation resources from the installer archive... Configuring the installer for this system's environment... Launching installer... JRE libraries are missing or not compatible.... Exiting....
There was no way that I could figure out what libraries are missing. IBM installer does not have a direct option or log to figure that out. Finally found that we need to enable debug and here is way to do that.
export LAX_DEBUG=true
Once the debug is enabled and when you try to run the installer again, it provides the library that was missing.
Cut/Copy/Paste not working in Microsoft Remote Desktop for Mac
by Frederick Tybalt on Nov.29, 2019, under Issues, MAC, Software, Windows
Had a wired issue that when I cut/copy/past from my MAC machine to Windows remote desktop machine it was not working. Meanwhile the vice versa was working.
After may attempts this solution worked.
In the command Prompt of Remote windows machine run the commands
Taskkill.exe /im rdpclip.exe Rdpclip.exe
Alternately, you can go to task manager and locate the process rdpclip.exe and end the process. Start again the process from the command prompt or Run option
Migrating Oracle Pivot Function to DB2/DASHDB
by Frederick Tybalt on Aug.08, 2017, under Database
I have come across a situation where I need to migrate a ORACLE query which has a pivot function to DB2 equivalent SQL. The Pivot function is not available in DB2 or DASHDB. so was no direct solution in the internet and hence came up with my own solution
Sample Oracle Query with pivot function :
SELECT NM,DESC,ADM,USR,SUP
FROM
(
SELECT NM, DESC, GRP
FROM SRC_GRP
)
PIVOT
(
COUNT(GRP)
FOR GRP IN
(
'Admin' as ADM,
'User' as USR,
'Support' as SUP
)
)
ORDER BY NM
Converted equivalent DB2/DASHDB query:
SELECT NM,DESC,count(ADM) AS ADM,count(USR) AS USR,count(SUP) AS SUP
FROM
(
SELECT NM, DESC,
CASE WHEN GRP = 'Admin' THEN GRP END AS ADM,
CASE WHEN GRP = 'User' THEN GRP END AS USR,
CASE WHEN GRP = 'Support' THEN GRP END AS SUP
FROM SRC_GRP
)
group by NM, DESC
Order by NM
I was able to get the same output from both the queries.
SQL0668N Operation not allowed for reason code “3” on table
by Frederick Tybalt on Jul.24, 2017, under Error and Issues
Error:
SQLExecute reported: SQLSTATE = 57016: Native Error Code = -668: Msg = [IBM][CLI Driver][DB2/LINUXX8664] SQL0668N Operation not allowed for reason code “3” on table “XXX.XXXX”. SQLSTATE=57016
Resolution:
After doing several research the issue was the table was marked in check pending state due to bad bulk load without terminate in load statement.
Loading a null file to the table with the terminate command will clear the issue.
load from /dev/null of del terminate into XXX.XXXX
Sample :
db2 => LOAD FROM /DEV/NULL OF DEL TERMINATE INTO XXX.XXXX
SQL3110N The utility has completed processing. "0" rows were read from the
input file.
Number of rows read = 0
Number of rows skipped = 0
Number of rows loaded = 0
Number of rows rejected = 0
Number of rows deleted = 0
Number of rows committed = 0
Platform :
Datastage 11.5 on Linux &
DB2 10.5 on Linux
Datastage : DB2 Lookup Stage : SAX parser exception thrown: The input ended before all started tags were ended
by Frederick Tybalt on Jun.30, 2017, under Error and Issues
Error :
Unrecognized argument: variant=’9.1\’,
library=ccdb2,
version=1.0,
variantlist=\’V1;9.1::ccdb2\’,
versionlist=\’1.0\’,
name=DB2Connector
}’
SAX parser exception thrown: The input ended before all started tags were ended. Last tag started was ‘before’ (CC_PropertySet::fatalError, file CC_PropertySet.cpp, line 2,236)
Resolution:
There are lot of references in google that the similar kind of error occurred in the XML stage and it it XML stage related error. But in my case this occurred in the DB2 lookup stage. After serval analysis, I found that, there was a environment variable defined for the table name and during the migration the environment variable was not added in the job parameter.
example :
SELECT COL1, COL2 FROM #$SrcTbl#
$SrcTbl was missing in the job parameter list.
This looks to weird since if this was in DB2 source or target stage, the error will be table not found.
Platform :
Datastage 11.5 on Linux
DataStage : DB2 Stage : Failure during execution of operator logic
by Frederick Tybalt on Jun.30, 2017, under Error and Issues
Error Details :
Failure during execution of operator logic.
Output 0 produced 0 records.
APT_Decimal::assignFromString: invalid format for the source string. Expecting trailing NUL, space, or tab character(s) got ‘E’
Resolution:
One of the column which has the SQL type Decimal has the value “5E+7” which was not able convert to Decimal value. To eliminate this error read the column as String
This could happen when the decimal field is computed. To revert back to decimal field use explicit cast function
CAST(CAST(DISBURSED_AMOUNT AS FLOAT) AS DECIMAL(31,2))
Platform :
DataStage 11.5 running on linux
DASHDB 10.5 running on linux
Live Currency Conversion For Multi-Currency E-Commerce Websites
by Frederick Tybalt on Apr.15, 2016, under Internet, Links, Programming
If your E-Commerce website requires to display the product value in multiple currency based on user’s choice, it requires a conversion from base currency. This piece of utility will directly do the currency conversion based on live exchange rates. This utility used from google finance currency conversion module to perform the conversion and provide the output value.
Utility Usage:
http://currency.tekbytz.com/?amount=<amount>&from=<from currency>&to=<to currency>
Sample Usage:
http://currency.tekbytz.com/?amount=10&from=USD&to=INR
http://currency.tekbytz.com/?amount=20&from=CAD&to=EUR
http://currency.tekbytz.com/?amount=25&from=MYR&to=INR
The below currency format/codes are supported
- United Arab Emirates Dirham (AED)
- Afghan Afghani (AFN)
- Albanian Lek (ALL)
- Armenian Dram (AMD)
- Netherlands Antillean Guilder (ANG)
- Angolan Kwanza (AOA)
- Argentine Peso (ARS)
- Australian Dollar (A$)
- Aruban Florin (AWG)
- Azerbaijani Manat (AZN)
- Bosnia-Herzegovina Convertible Mark (BAM)
- Barbadian Dollar (BBD)
- Bangladeshi Taka (BDT)
- Bulgarian Lev (BGN)
- Bahraini Dinar (BHD)
- Burundian Franc (BIF)
- Bermudan Dollar (BMD)
- Brunei Dollar (BND)
- Bolivian Boliviano (BOB)
- Brazilian Real (R$)
- Bahamian Dollar (BSD)
- Bitcoin (฿)
- Bhutanese Ngultrum (BTN)
- Botswanan Pula (BWP)
- Belarusian Ruble (BYR)
- Belize Dollar (BZD)
- Canadian Dollar (CA$)
- Congolese Franc (CDF)
- Swiss Franc (CHF)
- Chilean Unit of Account (UF) (CLF)
- Chilean Peso (CLP)
- CNH (CNH)
- Chinese Yuan (CN¥)
- Colombian Peso (COP)
- Costa Rican Colón (CRC)
- Cuban Peso (CUP)
- Cape Verdean Escudo (CVE)
- Czech Republic Koruna (CZK)
- German Mark (DEM)
- Djiboutian Franc (DJF)
- Danish Krone (DKK)
- Dominican Peso (DOP)
- Algerian Dinar (DZD)
- Egyptian Pound (EGP)
- Eritrean Nakfa (ERN)
- Ethiopian Birr (ETB)
- Euro (€)
- Finnish Markka (FIM)
- Fijian Dollar (FJD)
- Falkland Islands Pound (FKP)
- French Franc (FRF)
- British Pound (£)
- Georgian Lari (GEL)
- Ghanaian Cedi (GHS)
- Gibraltar Pound (GIP)
- Gambian Dalasi (GMD)
- Guinean Franc (GNF)
- Guatemalan Quetzal (GTQ)
- Guyanaese Dollar (GYD)
- Hong Kong Dollar (HK$)
- Honduran Lempira (HNL)
- Croatian Kuna (HRK)
- Haitian Gourde (HTG)
- Hungarian Forint (HUF)
- Indonesian Rupiah (IDR)
- Irish Pound (IEP)
- Israeli New Sheqel (₪)
- Indian Rupee (Rs.)
- Iraqi Dinar (IQD)
- Iranian Rial (IRR)
- Icelandic Króna (ISK)
- Italian Lira (ITL)
- Jamaican Dollar (JMD)
- Jordanian Dinar (JOD)
- Japanese Yen (¥)
- Kenyan Shilling (KES)
- Kyrgystani Som (KGS)
- Cambodian Riel (KHR)
- Comorian Franc (KMF)
- North Korean Won (KPW)
- South Korean Won (₩)
- Kuwaiti Dinar (KWD)
- Cayman Islands Dollar (KYD)
- Kazakhstani Tenge (KZT)
- Laotian Kip (LAK)
- Lebanese Pound (LBP)
- Sri Lankan Rupee (LKR)
- Liberian Dollar (LRD)
- Lesotho Loti (LSL)
- Lithuanian Litas (LTL)
- Latvian Lats (LVL)
- Libyan Dinar (LYD)
- Moroccan Dirham (MAD)
- Moldovan Leu (MDL)
- Malagasy Ariary (MGA)
- Macedonian Denar (MKD)
- Myanmar Kyat (MMK)
- Mongolian Tugrik (MNT)
- Macanese Pataca (MOP)
- Mauritanian Ouguiya (MRO)
- Mauritian Rupee (MUR)
- Maldivian Rufiyaa (MVR)
- Malawian Kwacha (MWK)
- Mexican Peso (MX$)
- Malaysian Ringgit (MYR)
- Mozambican Metical (MZN)
- Namibian Dollar (NAD)
- Nigerian Naira (NGN)
- Nicaraguan Córdoba (NIO)
- Norwegian Krone (NOK)
- Nepalese Rupee (NPR)
- New Zealand Dollar (NZ$)
- Omani Rial (OMR)
- Panamanian Balboa (PAB)
- Peruvian Nuevo Sol (PEN)
- Papua New Guinean Kina (PGK)
- Philippine Peso (Php)
- PKG (PKG)
- Pakistani Rupee (PKR)
- Polish Zloty (PLN)
- Paraguayan Guarani (PYG)
- Qatari Rial (QAR)
- Romanian Leu (RON)
- Serbian Dinar (RSD)
- Russian Ruble (RUB)
- Rwandan Franc (RWF)
- Saudi Riyal (SAR)
- Solomon Islands Dollar (SBD)
- Seychellois Rupee (SCR)
- Sudanese Pound (SDG)
- Swedish Krona (SEK)
- Singapore Dollar (SGD)
- St. Helena Pound (SHP)
- Slovak Koruna (SKK)
- Sierra Leonean Leone (SLL)
- Somali Shilling (SOS)
- Surinamese Dollar (SRD)
- São Tomé & Príncipe Dobra (STD)
- Salvadoran Colón (SVC)
- Syrian Pound (SYP)
- Swazi Lilangeni (SZL)
- Thai Baht (THB)
- Tajikistani Somoni (TJS)
- Turkmenistani Manat (TMT)
- Tunisian Dinar (TND)
- Tongan Paʻanga (TOP)
- Turkish Lira (TRY)
- Trinidad & Tobago Dollar (TTD)
- New Taiwan Dollar (NT$)
- Tanzanian Shilling (TZS)
- Ukrainian Hryvnia (UAH)
- Ugandan Shilling (UGX)
- US Dollar ($)
- Uruguayan Peso (UYU)
- Uzbekistani Som (UZS)
- Venezuelan Bolívar (VEF)
- Vietnamese Dong (₫)
- Vanuatu Vatu (VUV)
- Samoan Tala (WST)
- Central African CFA Franc (FCFA)
- East Caribbean Dollar (EC$)
- Special Drawing Rights (XDR)
- West African CFA Franc (CFA)
- CFP Franc (CFPF)
- Yemeni Rial (YER)
- South African Rand (ZAR)
- Zambian Kwacha (1968–2012) (ZMK)
- Zambian Kwacha (ZMW)
- Zimbabwean Dollar (2009) (ZWL)
Source : Google Finance
How to run a background command in script as a parameter in unix shell scripts
by Frederick Tybalt on Jun.21, 2013, under Programming, Unix
Many times you would have tried running a command or script directly in a unix script by providing the name and path of the script. Also you would have run scripts are commands by assingning to variables. But by any chance if you had tried running a script or command assingned to variables you might got struck and which also gives you a vauge error message.
For example consider a script param.sh as below
echo $1 $1
And you are running the scipt as
./param.sh 'ls -ltr &'
You would be getting a error message
./& not found
This issue can be resloved by using eval command in param.sh and the new script looks as below.
eval $1
eval command will take an argument and construct a command of it, which will be executed by the shell. It is an inbuit command and there is the man page http://www.unix.com/man-page/posix/1posix/eval/
How to find a substring between Nth and (N+1)th occurance of a charecter in a cell in Excel
by Frederick Tybalt on Jun.21, 2013, under Office, Windows
Excel’s built-in functions can do some pretty clever stuff, but unfortunately Excel has no single function that will return the string beween nth and n+1th charecter occurrence of specified data. Fortunately, there are ways to make Excel do this. The function used could be complex but could be accomblished.
Consider if you have the text “How to find the substring in Excel” in cell A1 and incase if you need to find 5th word in the string the below formula can be used. This can be used for strings with any seperators
=IF(ISERR(MID(A1,FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),4))+1,(FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),5))-FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),4))-1))),"",MID(A1,FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),4))+1,(FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),5))-FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),4))-1)))
As a Generic formula the below paramters can be changed to achive to find any word between occurances
=IF(ISERR(MID(A1,FIND(CHAR(1),SUBSTITUTE(A1,"C",CHAR(1),n))+1,(FIND(CHAR(1),SUBSTITUTE(A1,"C",CHAR(1),m))-FIND(CHAR(1),SUBSTITUTE(A1,"C",CHAR(1),n))-1))),"",MID(A1,FIND(CHAR(1),SUBSTITUTE(A1,"C",CHAR(1),n))+1,(FIND(CHAR(1),SUBSTITUTE(A1,"C",CHAR(1),m))-FIND(CHAR(1),SUBSTITUTE(A1,"C",CHAR(1),n))-1)))
Where
A1 – Cell of the string
C – is the Charecter occurance, can be ” “, “.” etc
n – Nth occurance of Charecter C, n starts from 0
m – N+1 occurance of Charecter C, m starts from 0
Few other useful formulas that would handle strings.
Finding the Nth position of a charecter
=FIND(CHAR(1),SUBSTITUTE(A1,”i”,CHAR(1),3))
This formula will inf the 3rd occurance if charecter “i” in cell A1.
Alternte formula with similar function
=SEARCHB("i",A1,(SEARCHB("i",A1,(SEARCHB("i",A1,1)+1))+1))
Finding the first Word in a String
=IF(ISERR(MID(A1,1,FIND(" ",A1)-1)),"",MID(A1,1,FIND(" ",A1)-1))
This formula will find the 1st word in a sting in cell A1.